├── .gitignore ├── GPL_ClasspathException ├── README.md ├── art ├── streamsupport-sf.png └── streamsupport-sf.svg ├── docs ├── apidocs │ ├── allclasses-frame.html │ ├── allclasses-noframe.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── java9 │ │ └── util │ │ │ └── concurrent │ │ │ ├── CompletableFuture.AsynchronousCompletionTask.html │ │ │ ├── CompletableFuture.html │ │ │ ├── CompletionException.html │ │ │ ├── CompletionStage.html │ │ │ ├── class-use │ │ │ ├── CompletableFuture.AsynchronousCompletionTask.html │ │ │ ├── CompletableFuture.html │ │ │ ├── CompletionException.html │ │ │ └── CompletionStage.html │ │ │ ├── package-frame.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ ├── overview-tree.html │ ├── package-list │ ├── script.js │ ├── serialized-form.html │ └── stylesheet.css ├── images │ ├── bg_hr.png │ ├── blacktocat.png │ ├── icon_download.png │ └── sprite_download.png ├── index.html ├── scripts │ └── prettify │ │ ├── prettify.css │ │ ├── prettify.js │ │ └── run_prettify.js └── stylesheets │ ├── pygment_trac.css │ └── stylesheet.css ├── pom.xml ├── proguard-rules.pro └── src └── main └── java └── java9 └── util └── concurrent ├── CompletableFuture.java ├── CompletionException.java ├── CompletionStage.java └── package-info.java /.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | /.classpath 3 | /.project 4 | /.settings/org.eclipse.core.resources.prefs 5 | /.settings/org.eclipse.jdt.core.prefs 6 | /.settings/org.eclipse.m2e.core.prefs -------------------------------------------------------------------------------- /GPL_ClasspathException: -------------------------------------------------------------------------------- 1 | GNU General Public License, version 2, with the Classpath Exception 2 | 3 | The GNU General Public License (GPL) 4 | 5 | Version 2, June 1991 6 | 7 | Copyright (C) 1989, 1991 Free Software Foundation, Inc. 8 | 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 9 | 10 | Everyone is permitted to copy and distribute verbatim copies of this license 11 | document, but changing it is not allowed. 12 | 13 | Preamble 14 | 15 | The licenses for most software are designed to take away your freedom to share 16 | and change it. By contrast, the GNU General Public License is intended to 17 | guarantee your freedom to share and change free software--to make sure the 18 | software is free for all its users. This General Public License applies to 19 | most of the Free Software Foundation's software and to any other program whose 20 | authors commit to using it. (Some other Free Software Foundation software is 21 | covered by the GNU Library General Public License instead.) You can apply it to 22 | your programs, too. 23 | 24 | When we speak of free software, we are referring to freedom, not price. Our 25 | General Public Licenses are designed to make sure that you have the freedom to 26 | distribute copies of free software (and charge for this service if you wish), 27 | that you receive source code or can get it if you want it, that you can change 28 | the software or use pieces of it in new free programs; and that you know you 29 | can do these things. 30 | 31 | To protect your rights, we need to make restrictions that forbid anyone to deny 32 | you these rights or to ask you to surrender the rights. These restrictions 33 | translate to certain responsibilities for you if you distribute copies of the 34 | software, or if you modify it. 35 | 36 | For example, if you distribute copies of such a program, whether gratis or for 37 | a fee, you must give the recipients all the rights that you have. You must 38 | make sure that they, too, receive or can get the source code. And you must 39 | show them these terms so they know their rights. 40 | 41 | We protect your rights with two steps: (1) copyright the software, and (2) 42 | offer you this license which gives you legal permission to copy, distribute 43 | and/or modify the software. 44 | 45 | Also, for each author's protection and ours, we want to make certain that 46 | everyone understands that there is no warranty for this free software. If the 47 | software is modified by someone else and passed on, we want its recipients to 48 | know that what they have is not the original, so that any problems introduced 49 | by others will not reflect on the original authors' reputations. 50 | 51 | Finally, any free program is threatened constantly by software patents. We 52 | wish to avoid the danger that redistributors of a free program will 53 | individually obtain patent licenses, in effect making the program proprietary. 54 | To prevent this, we have made it clear that any patent must be licensed for 55 | everyone's free use or not licensed at all. 56 | 57 | The precise terms and conditions for copying, distribution and modification 58 | follow. 59 | 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains a notice 63 | placed by the copyright holder saying it may be distributed under the terms of 64 | this General Public License. The "Program", below, refers to any such program 65 | or work, and a "work based on the Program" means either the Program or any 66 | derivative work under copyright law: that is to say, a work containing the 67 | Program or a portion of it, either verbatim or with modifications and/or 68 | translated into another language. (Hereinafter, translation is included 69 | without limitation in the term "modification".) Each licensee is addressed as 70 | "you". 71 | 72 | Activities other than copying, distribution and modification are not covered by 73 | this License; they are outside its scope. The act of running the Program is 74 | not restricted, and the output from the Program is covered only if its contents 75 | constitute a work based on the Program (independent of having been made by 76 | running the Program). Whether that is true depends on what the Program does. 77 | 78 | 1. You may copy and distribute verbatim copies of the Program's source code as 79 | you receive it, in any medium, provided that you conspicuously and 80 | appropriately publish on each copy an appropriate copyright notice and 81 | disclaimer of warranty; keep intact all the notices that refer to this License 82 | and to the absence of any warranty; and give any other recipients of the 83 | Program a copy of this License along with the Program. 84 | 85 | You may charge a fee for the physical act of transferring a copy, and you may 86 | at your option offer warranty protection in exchange for a fee. 87 | 88 | 2. You may modify your copy or copies of the Program or any portion of it, thus 89 | forming a work based on the Program, and copy and distribute such modifications 90 | or work under the terms of Section 1 above, provided that you also meet all of 91 | these conditions: 92 | 93 | a) You must cause the modified files to carry prominent notices stating 94 | that you changed the files and the date of any change. 95 | 96 | b) You must cause any work that you distribute or publish, that in whole or 97 | in part contains or is derived from the Program or any part thereof, to be 98 | licensed as a whole at no charge to all third parties under the terms of 99 | this License. 100 | 101 | c) If the modified program normally reads commands interactively when run, 102 | you must cause it, when started running for such interactive use in the 103 | most ordinary way, to print or display an announcement including an 104 | appropriate copyright notice and a notice that there is no warranty (or 105 | else, saying that you provide a warranty) and that users may redistribute 106 | the program under these conditions, and telling the user how to view a copy 107 | of this License. (Exception: if the Program itself is interactive but does 108 | not normally print such an announcement, your work based on the Program is 109 | not required to print an announcement.) 110 | 111 | These requirements apply to the modified work as a whole. If identifiable 112 | sections of that work are not derived from the Program, and can be reasonably 113 | considered independent and separate works in themselves, then this License, and 114 | its terms, do not apply to those sections when you distribute them as separate 115 | works. But when you distribute the same sections as part of a whole which is a 116 | work based on the Program, the distribution of the whole must be on the terms 117 | of this License, whose permissions for other licensees extend to the entire 118 | whole, and thus to each and every part regardless of who wrote it. 119 | 120 | Thus, it is not the intent of this section to claim rights or contest your 121 | rights to work written entirely by you; rather, the intent is to exercise the 122 | right to control the distribution of derivative or collective works based on 123 | the Program. 124 | 125 | In addition, mere aggregation of another work not based on the Program with the 126 | Program (or with a work based on the Program) on a volume of a storage or 127 | distribution medium does not bring the other work under the scope of this 128 | License. 129 | 130 | 3. You may copy and distribute the Program (or a work based on it, under 131 | Section 2) in object code or executable form under the terms of Sections 1 and 132 | 2 above provided that you also do one of the following: 133 | 134 | a) Accompany it with the complete corresponding machine-readable source 135 | code, which must be distributed under the terms of Sections 1 and 2 above 136 | on a medium customarily used for software interchange; or, 137 | 138 | b) Accompany it with a written offer, valid for at least three years, to 139 | give any third party, for a charge no more than your cost of physically 140 | performing source distribution, a complete machine-readable copy of the 141 | corresponding source code, to be distributed under the terms of Sections 1 142 | and 2 above on a medium customarily used for software interchange; or, 143 | 144 | c) Accompany it with the information you received as to the offer to 145 | distribute corresponding source code. (This alternative is allowed only 146 | for noncommercial distribution and only if you received the program in 147 | object code or executable form with such an offer, in accord with 148 | Subsection b above.) 149 | 150 | The source code for a work means the preferred form of the work for making 151 | modifications to it. For an executable work, complete source code means all 152 | the source code for all modules it contains, plus any associated interface 153 | definition files, plus the scripts used to control compilation and installation 154 | of the executable. However, as a special exception, the source code 155 | distributed need not include anything that is normally distributed (in either 156 | source or binary form) with the major components (compiler, kernel, and so on) 157 | of the operating system on which the executable runs, unless that component 158 | itself accompanies the executable. 159 | 160 | If distribution of executable or object code is made by offering access to copy 161 | from a designated place, then offering equivalent access to copy the source 162 | code from the same place counts as distribution of the source code, even though 163 | third parties are not compelled to copy the source along with the object code. 164 | 165 | 4. You may not copy, modify, sublicense, or distribute the Program except as 166 | expressly provided under this License. Any attempt otherwise to copy, modify, 167 | sublicense or distribute the Program is void, and will automatically terminate 168 | your rights under this License. However, parties who have received copies, or 169 | rights, from you under this License will not have their licenses terminated so 170 | long as such parties remain in full compliance. 171 | 172 | 5. You are not required to accept this License, since you have not signed it. 173 | However, nothing else grants you permission to modify or distribute the Program 174 | or its derivative works. These actions are prohibited by law if you do not 175 | accept this License. Therefore, by modifying or distributing the Program (or 176 | any work based on the Program), you indicate your acceptance of this License to 177 | do so, and all its terms and conditions for copying, distributing or modifying 178 | the Program or works based on it. 179 | 180 | 6. Each time you redistribute the Program (or any work based on the Program), 181 | the recipient automatically receives a license from the original licensor to 182 | copy, distribute or modify the Program subject to these terms and conditions. 183 | You may not impose any further restrictions on the recipients' exercise of the 184 | rights granted herein. You are not responsible for enforcing compliance by 185 | third parties to this License. 186 | 187 | 7. If, as a consequence of a court judgment or allegation of patent 188 | infringement or for any other reason (not limited to patent issues), conditions 189 | are imposed on you (whether by court order, agreement or otherwise) that 190 | contradict the conditions of this License, they do not excuse you from the 191 | conditions of this License. If you cannot distribute so as to satisfy 192 | simultaneously your obligations under this License and any other pertinent 193 | obligations, then as a consequence you may not distribute the Program at all. 194 | For example, if a patent license would not permit royalty-free redistribution 195 | of the Program by all those who receive copies directly or indirectly through 196 | you, then the only way you could satisfy both it and this License would be to 197 | refrain entirely from distribution of the Program. 198 | 199 | If any portion of this section is held invalid or unenforceable under any 200 | particular circumstance, the balance of the section is intended to apply and 201 | the section as a whole is intended to apply in other circumstances. 202 | 203 | It is not the purpose of this section to induce you to infringe any patents or 204 | other property right claims or to contest validity of any such claims; this 205 | section has the sole purpose of protecting the integrity of the free software 206 | distribution system, which is implemented by public license practices. Many 207 | people have made generous contributions to the wide range of software 208 | distributed through that system in reliance on consistent application of that 209 | system; it is up to the author/donor to decide if he or she is willing to 210 | distribute software through any other system and a licensee cannot impose that 211 | choice. 212 | 213 | This section is intended to make thoroughly clear what is believed to be a 214 | consequence of the rest of this License. 215 | 216 | 8. If the distribution and/or use of the Program is restricted in certain 217 | countries either by patents or by copyrighted interfaces, the original 218 | copyright holder who places the Program under this License may add an explicit 219 | geographical distribution limitation excluding those countries, so that 220 | distribution is permitted only in or among countries not thus excluded. In 221 | such case, this License incorporates the limitation as if written in the body 222 | of this License. 223 | 224 | 9. The Free Software Foundation may publish revised and/or new versions of the 225 | General Public License from time to time. Such new versions will be similar in 226 | spirit to the present version, but may differ in detail to address new problems 227 | or concerns. 228 | 229 | Each version is given a distinguishing version number. If the Program 230 | specifies a version number of this License which applies to it and "any later 231 | version", you have the option of following the terms and conditions either of 232 | that version or of any later version published by the Free Software Foundation. 233 | If the Program does not specify a version number of this License, you may 234 | choose any version ever published by the Free Software Foundation. 235 | 236 | 10. If you wish to incorporate parts of the Program into other free programs 237 | whose distribution conditions are different, write to the author to ask for 238 | permission. For software which is copyrighted by the Free Software Foundation, 239 | write to the Free Software Foundation; we sometimes make exceptions for this. 240 | Our decision will be guided by the two goals of preserving the free status of 241 | all derivatives of our free software and of promoting the sharing and reuse of 242 | software generally. 243 | 244 | NO WARRANTY 245 | 246 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR 247 | THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE 248 | STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE 249 | PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, 250 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 251 | FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND 252 | PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, 253 | YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 254 | 255 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL 256 | ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE 257 | PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 258 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR 259 | INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA 260 | BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A 261 | FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER 262 | OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 263 | 264 | END OF TERMS AND CONDITIONS 265 | 266 | How to Apply These Terms to Your New Programs 267 | 268 | If you develop a new program, and you want it to be of the greatest possible 269 | use to the public, the best way to achieve this is to make it free software 270 | which everyone can redistribute and change under these terms. 271 | 272 | To do so, attach the following notices to the program. It is safest to attach 273 | them to the start of each source file to most effectively convey the exclusion 274 | of warranty; and each file should have at least the "copyright" line and a 275 | pointer to where the full notice is found. 276 | 277 | One line to give the program's name and a brief idea of what it does. 278 | 279 | Copyright (C) 280 | 281 | This program is free software; you can redistribute it and/or modify it 282 | under the terms of the GNU General Public License as published by the Free 283 | Software Foundation; either version 2 of the License, or (at your option) 284 | any later version. 285 | 286 | This program is distributed in the hope that it will be useful, but WITHOUT 287 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 288 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 289 | more details. 290 | 291 | You should have received a copy of the GNU General Public License along 292 | with this program; if not, write to the Free Software Foundation, Inc., 59 293 | Temple Place, Suite 330, Boston, MA 02111-1307 USA 294 | 295 | Also add information on how to contact you by electronic and paper mail. 296 | 297 | If the program is interactive, make it output a short notice like this when it 298 | starts in an interactive mode: 299 | 300 | Gnomovision version 69, Copyright (C) year name of author Gnomovision comes 301 | with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free 302 | software, and you are welcome to redistribute it under certain conditions; 303 | type 'show c' for details. 304 | 305 | The hypothetical commands 'show w' and 'show c' should show the appropriate 306 | parts of the General Public License. Of course, the commands you use may be 307 | called something other than 'show w' and 'show c'; they could even be 308 | mouse-clicks or menu items--whatever suits your program. 309 | 310 | You should also get your employer (if you work as a programmer) or your school, 311 | if any, to sign a "copyright disclaimer" for the program, if necessary. Here 312 | is a sample; alter the names: 313 | 314 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 315 | 'Gnomovision' (which makes passes at compilers) written by James Hacker. 316 | 317 | signature of Ty Coon, 1 April 1989 318 | 319 | Ty Coon, President of Vice 320 | 321 | This General Public License does not permit incorporating your program into 322 | proprietary programs. If your program is a subroutine library, you may 323 | consider it more useful to permit linking proprietary applications with the 324 | library. If this is what you want to do, use the GNU Library General Public 325 | License instead of this License. 326 | 327 | 328 | "CLASSPATH" EXCEPTION TO THE GPL 329 | 330 | Certain source files distributed by Oracle America and/or its affiliates are 331 | subject to the following clarification and special exception to the GPL, but 332 | only where Oracle has expressly included in the particular source file's header 333 | the words "Oracle designates this particular file as subject to the "Classpath" 334 | exception as provided by Oracle in the LICENSE file that accompanied this code." 335 | 336 | Linking this library statically or dynamically with other modules is making 337 | a combined work based on this library. Thus, the terms and conditions of 338 | the GNU General Public License cover the whole combination. 339 | 340 | As a special exception, the copyright holders of this library give you 341 | permission to link this library with independent modules to produce an 342 | executable, regardless of the license terms of these independent modules, 343 | and to copy and distribute the resulting executable under terms of your 344 | choice, provided that you also meet, for each linked independent module, 345 | the terms and conditions of the license of that module. An independent 346 | module is a module which is not derived from or based on this library. If 347 | you modify this library, you may extend this exception to your version of 348 | the library, but you are not obligated to do so. If you do not wish to do 349 | so, delete this exception statement from your version. 350 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Maven Central](https://img.shields.io/maven-central/v/net.sourceforge.streamsupport/android-retrofuture.svg)](http://mvnrepository.com/artifact/net.sourceforge.streamsupport/android-retrofuture) 2 | [![javadoc.io](https://javadoc.io/badge2/net.sourceforge.streamsupport/android-retrofuture/javadoc.svg)](https://javadoc.io/doc/net.sourceforge.streamsupport/android-retrofuture) 3 | 4 | # android-retrofuture 5 | 6 | ![](art/streamsupport-sf.png) 7 | 8 | android-retrofuture is a backport of the Java 8 CompletableFuture API upgraded to the current Java 9 (JEP 266) enhancements for Android developers wanting to use the Android Studio 3.x D8 / desugar toolchain. 9 | 10 | There is nothing specific to Android or the desugar toolchain in this code (it could even be compiled to Java 6 bytecode) but 11 | it has a dependency on [android-retrostreams](https://github.com/retrostreams/android-retrostreams) which is why this exists as a separate component (the corresponding 12 | [streamsupport-cfuture](https://github.com/stefan-zobel/streamsupport/tree/master/src/cfuture) component can't be used with android-retrostreams 13 | and [android-retrostreams](https://github.com/retrostreams/android-retrostreams) itself can *only* be used with desugar or Java 8 and higher). 14 | 15 | Other than having a different package name this code has no further changes compared with [streamsupport-cfuture](https://github.com/stefan-zobel/streamsupport/tree/master/src/cfuture) 16 | 17 | The new Java 12 exception handling methods for CompletableFuture [JDK-8211010](https://bugs.openjdk.java.net/browse/JDK-8211010) have been integrated in release 1.7.0 18 | 19 | Online Javadoc is available at [docs](https://retrostreams.github.io/android-retrofuture/apidocs/index.html) 20 | 21 | Please give feedback [here](https://github.com/retrostreams/android-retrofuture/issues) if you experience any problems. 22 | 23 | 24 | ### build.gradle: 25 | 26 | ```gradle 27 | dependencies { 28 | implementation 'net.sourceforge.streamsupport:android-retrofuture:1.7.4' 29 | } 30 | ``` 31 | 32 | ## LICENSE 33 | 34 | GNU General Public License, version 2, [with the Classpath Exception](https://github.com/retrostreams/android-retrofuture/blob/master/GPL_ClasspathException) (and [CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/) for JSR-166 derived code) 35 | 36 | -------------------------------------------------------------------------------- /art/streamsupport-sf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/retrostreams/android-retrofuture/9556218bff68820626f841a5bf80709cba7278e8/art/streamsupport-sf.png -------------------------------------------------------------------------------- /art/streamsupport-sf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 22 | 24 | 46 | 48 | 49 | 51 | image/svg+xml 52 | 54 | 55 | 56 | 57 | 58 | 63 | 71 | 79 | 87 | 95 | 103 | 111 | 119 | 128 | 137 | 146 | 154 | 162 | 170 | 171 | 172 | -------------------------------------------------------------------------------- /docs/apidocs/allclasses-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (net.sourceforge.streamsupport:android-retrofuture 1.7.4 API) 8 | 9 | 10 | 11 | 12 | 13 |

All Classes

14 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /docs/apidocs/allclasses-noframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | All Classes (net.sourceforge.streamsupport:android-retrofuture 1.7.4 API) 8 | 9 | 10 | 11 | 12 | 13 |

All Classes

14 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /docs/apidocs/constant-values.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Constant Field Values (net.sourceforge.streamsupport:android-retrofuture 1.7.4 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 43 |
44 | 71 | 72 |
73 |

Constant Field Values

74 |

Contents

75 |
76 | 77 |
78 | 79 | 80 | 81 | 82 | 83 | 84 | 93 |
94 | 121 | 122 |

Copyright © 2021. All rights reserved.

123 | 124 | 125 | -------------------------------------------------------------------------------- /docs/apidocs/deprecated-list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Deprecated List (net.sourceforge.streamsupport:android-retrofuture 1.7.4 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 43 |
44 | 71 | 72 |
73 |

Deprecated API

74 |

Contents

75 |
76 | 77 |
78 | 79 | 80 | 81 | 82 | 83 | 84 | 93 |
94 | 121 | 122 |

Copyright © 2021. All rights reserved.

123 | 124 | 125 | -------------------------------------------------------------------------------- /docs/apidocs/help-doc.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | API Help (net.sourceforge.streamsupport:android-retrofuture 1.7.4 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 43 |
44 | 71 | 72 |
73 |

How This API Document Is Organized

74 |
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
75 |
76 |
77 |
    78 |
  • 79 |

    Package

    80 |

    Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:

    81 |
      82 |
    • Interfaces (italic)
    • 83 |
    • Classes
    • 84 |
    • Enums
    • 85 |
    • Exceptions
    • 86 |
    • Errors
    • 87 |
    • Annotation Types
    • 88 |
    89 |
  • 90 |
  • 91 |

    Class/Interface

    92 |

    Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

    93 |
      94 |
    • Class inheritance diagram
    • 95 |
    • Direct Subclasses
    • 96 |
    • All Known Subinterfaces
    • 97 |
    • All Known Implementing Classes
    • 98 |
    • Class/interface declaration
    • 99 |
    • Class/interface description
    • 100 |
    101 |
      102 |
    • Nested Class Summary
    • 103 |
    • Field Summary
    • 104 |
    • Constructor Summary
    • 105 |
    • Method Summary
    • 106 |
    107 |
      108 |
    • Field Detail
    • 109 |
    • Constructor Detail
    • 110 |
    • Method Detail
    • 111 |
    112 |

    Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

    113 |
  • 114 |
  • 115 |

    Annotation Type

    116 |

    Each annotation type has its own separate page with the following sections:

    117 |
      118 |
    • Annotation Type declaration
    • 119 |
    • Annotation Type description
    • 120 |
    • Required Element Summary
    • 121 |
    • Optional Element Summary
    • 122 |
    • Element Detail
    • 123 |
    124 |
  • 125 |
  • 126 |

    Enum

    127 |

    Each enum has its own separate page with the following sections:

    128 |
      129 |
    • Enum declaration
    • 130 |
    • Enum description
    • 131 |
    • Enum Constant Summary
    • 132 |
    • Enum Constant Detail
    • 133 |
    134 |
  • 135 |
  • 136 |

    Use

    137 |

    Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

    138 |
  • 139 |
  • 140 |

    Tree (Class Hierarchy)

    141 |

    There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.

    142 |
      143 |
    • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
    • 144 |
    • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
    • 145 |
    146 |
  • 147 |
  • 148 |

    Deprecated API

    149 |

    The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

    150 |
  • 151 |
  • 152 |

    Index

    153 |

    The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.

    154 |
  • 155 |
  • 156 |

    Prev/Next

    157 |

    These links take you to the next or previous class, interface, package, or related page.

    158 |
  • 159 |
  • 160 |

    Frames/No Frames

    161 |

    These links show and hide the HTML frames. All pages are available with or without frames.

    162 |
  • 163 |
  • 164 |

    All Classes

    165 |

    The All Classes link shows all classes and interfaces except non-static nested types.

    166 |
  • 167 |
  • 168 |

    Serialized Form

    169 |

    Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

    170 |
  • 171 |
  • 172 |

    Constant Field Values

    173 |

    The Constant Field Values page lists the static final fields and their values.

    174 |
  • 175 |
176 | This help file applies to API documentation generated using the standard doclet.
177 | 178 |
179 | 180 | 181 | 182 | 183 | 184 | 185 | 194 |
195 | 222 | 223 |

Copyright © 2021. All rights reserved.

224 | 225 | 226 | -------------------------------------------------------------------------------- /docs/apidocs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | net.sourceforge.streamsupport:android-retrofuture 1.7.4 API 8 | 60 | 61 | 62 | 63 | 64 | 65 | <noscript> 66 | <div>JavaScript is disabled on your browser.</div> 67 | </noscript> 68 | <h2>Frame Alert</h2> 69 | <p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="java9/util/concurrent/package-summary.html">Non-frame version</a>.</p> 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /docs/apidocs/java9/util/concurrent/CompletableFuture.AsynchronousCompletionTask.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | CompletableFuture.AsynchronousCompletionTask (net.sourceforge.streamsupport:android-retrofuture 1.7.4 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 43 |
44 | 86 | 87 | 88 |
89 |
java9.util.concurrent
90 |

Interface CompletableFuture.AsynchronousCompletionTask

91 |
92 |
93 |
94 |
    95 |
  • 96 |
    97 |
    Enclosing class:
    98 |
    CompletableFuture<T>
    99 |
    100 |
    101 |
    102 |
    public static interface CompletableFuture.AsynchronousCompletionTask
    103 |
    A marker interface identifying asynchronous tasks produced by 104 | async methods. This may be useful for monitoring, 105 | debugging, and tracking asynchronous activities.
    106 |
    107 |
    Since:
    108 |
    1.8
    109 |
    110 |
  • 111 |
112 |
113 |
114 | 115 | 116 |
117 | 118 | 119 | 120 | 121 | 122 | 123 | 132 |
133 | 175 | 176 |

Copyright © 2021. All rights reserved.

177 | 178 | 179 | -------------------------------------------------------------------------------- /docs/apidocs/java9/util/concurrent/CompletionException.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | CompletionException (net.sourceforge.streamsupport:android-retrofuture 1.7.4 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 43 |
44 | 86 | 87 | 88 |
89 |
java9.util.concurrent
90 |

Class CompletionException

91 |
92 |
93 | 116 |
117 |
    118 |
  • 119 |
    120 |
    All Implemented Interfaces:
    121 |
    Serializable
    122 |
    123 |
    124 |
    125 |
    public class CompletionException
    126 | extends RuntimeException
    127 |
    Exception thrown when an error or other exception is encountered 128 | in the course of completing a result or task.
    129 |
    130 |
    Since:
    131 |
    1.8
    132 |
    Author:
    133 |
    Doug Lea
    134 |
    See Also:
    135 |
    Serialized Form
    136 |
    137 |
  • 138 |
139 |
140 |
141 | 209 |
210 |
211 |
    212 |
  • 213 | 214 |
      215 |
    • 216 | 217 | 218 |

      Constructor Detail

      219 | 220 | 221 | 222 |
        223 |
      • 224 |

        CompletionException

        225 |
        protected CompletionException()
        226 |
        Constructs a CompletionException with no detail message. 227 | The cause is not initialized, and may subsequently be 228 | initialized by a call to initCause.
        229 |
      • 230 |
      231 | 232 | 233 | 234 |
        235 |
      • 236 |

        CompletionException

        237 |
        protected CompletionException(String message)
        238 |
        Constructs a CompletionException with the specified detail 239 | message. The cause is not initialized, and may subsequently be 240 | initialized by a call to initCause.
        241 |
        242 |
        Parameters:
        243 |
        message - the detail message
        244 |
        245 |
      • 246 |
      247 | 248 | 249 | 250 |
        251 |
      • 252 |

        CompletionException

        253 |
        public CompletionException(String message,
        254 |                            Throwable cause)
        255 |
        Constructs a CompletionException with the specified detail 256 | message and cause.
        257 |
        258 |
        Parameters:
        259 |
        message - the detail message
        260 |
        cause - the cause (which is saved for later retrieval by the 261 | Throwable.getCause() method)
        262 |
        263 |
      • 264 |
      265 | 266 | 267 | 268 |
        269 |
      • 270 |

        CompletionException

        271 |
        public CompletionException(Throwable cause)
        272 |
        Constructs a CompletionException with the specified cause. 273 | The detail message is set to (cause == null ? null : 274 | cause.toString()) (which typically contains the class and 275 | detail message of cause).
        276 |
        277 |
        Parameters:
        278 |
        cause - the cause (which is saved for later retrieval by the 279 | Throwable.getCause() method)
        280 |
        281 |
      • 282 |
      283 |
    • 284 |
    285 |
  • 286 |
287 |
288 |
289 | 290 | 291 |
292 | 293 | 294 | 295 | 296 | 297 | 298 | 307 |
308 | 350 | 351 |

Copyright © 2021. All rights reserved.

352 | 353 | 354 | -------------------------------------------------------------------------------- /docs/apidocs/java9/util/concurrent/class-use/CompletableFuture.AsynchronousCompletionTask.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Uses of Interface java9.util.concurrent.CompletableFuture.AsynchronousCompletionTask (net.sourceforge.streamsupport:android-retrofuture 1.7.4 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 43 |
44 | 71 | 72 |
73 |

Uses of Interface
java9.util.concurrent.CompletableFuture.AsynchronousCompletionTask

74 |
75 |
No usage of java9.util.concurrent.CompletableFuture.AsynchronousCompletionTask
76 | 77 |
78 | 79 | 80 | 81 | 82 | 83 | 84 | 93 |
94 | 121 | 122 |

Copyright © 2021. All rights reserved.

123 | 124 | 125 | -------------------------------------------------------------------------------- /docs/apidocs/java9/util/concurrent/class-use/CompletionException.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Uses of Class java9.util.concurrent.CompletionException (net.sourceforge.streamsupport:android-retrofuture 1.7.4 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 43 |
44 | 71 | 72 |
73 |

Uses of Class
java9.util.concurrent.CompletionException

74 |
75 |
No usage of java9.util.concurrent.CompletionException
76 | 77 |
78 | 79 | 80 | 81 | 82 | 83 | 84 | 93 |
94 | 121 | 122 |

Copyright © 2021. All rights reserved.

123 | 124 | 125 | -------------------------------------------------------------------------------- /docs/apidocs/java9/util/concurrent/package-frame.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | java9.util.concurrent (net.sourceforge.streamsupport:android-retrofuture 1.7.4 API) 8 | 9 | 10 | 11 | 12 | 13 |

java9.util.concurrent

14 |
15 |

Interfaces

16 | 20 |

Classes

21 | 24 |

Exceptions

25 | 28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/apidocs/java9/util/concurrent/package-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | java9.util.concurrent (net.sourceforge.streamsupport:android-retrofuture 1.7.4 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 43 |
44 | 71 | 72 |
73 |

Package java9.util.concurrent

74 |
75 |
Covers a backport of the upgraded (JEP 266) Java 9 CompletableFuture API 76 | for Java 6 to 8 and Android developers.
77 |
78 |

See: Description

79 |
80 |
81 |
    82 |
  • 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 96 | 97 | 98 | 99 | 103 | 104 | 105 |
    Interface Summary 
    InterfaceDescription
    CompletableFuture.AsynchronousCompletionTask 93 |
    A marker interface identifying asynchronous tasks produced by 94 | async methods.
    95 |
    CompletionStage<T> 100 |
    A stage of a possibly asynchronous computation, that performs an 101 | action or computes a value when another CompletionStage completes.
    102 |
    106 |
  • 107 |
  • 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 123 | 124 | 125 |
    Class Summary 
    ClassDescription
    CompletableFuture<T> 118 |
    A Future that may be explicitly completed (setting its 119 | value and status), and may be used as a CompletionStage, 120 | supporting dependent functions and actions that trigger upon its 121 | completion.
    122 |
    126 |
  • 127 |
  • 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 141 | 142 | 143 |
    Exception Summary 
    ExceptionDescription
    CompletionException 138 |
    Exception thrown when an error or other exception is encountered 139 | in the course of completing a result or task.
    140 |
    144 |
  • 145 |
146 | 147 | 148 | 149 |

Package java9.util.concurrent Description

150 |
Covers a backport of the upgraded (JEP 266) Java 9 CompletableFuture API 151 | for Java 6 to 8 and Android developers. 152 | 153 | See JEP 266: More Concurrency Updates. 154 | 155 |

Memory Consistency Properties

156 | 157 | 159 | Chapter 17 of The Java™ Language Specification defines 160 | the happens-before relation on memory operations such as reads and 161 | writes of shared variables. The results of a write by one thread are 162 | guaranteed to be visible to a read by another thread only if the write 163 | operation happens-before the read operation. The synchronized 164 | and volatile constructs, as well as the Thread.start() and 165 | Thread.join() methods, can form happens-before relationships. 166 | In particular: 167 | 168 |
    169 |
  • Each action in a thread happens-before every action in that thread 170 | that comes later in the program's order. 171 | 172 |
  • An unlock (synchronized block or method exit) of a monitor 173 | happens-before every subsequent lock (synchronized block or 174 | method entry) of that same monitor. And because the happens-before 175 | relation is transitive, all actions of a thread prior to unlocking 176 | happen-before all actions subsequent to any thread locking that 177 | monitor. 178 | 179 |
  • A write to a volatile field happens-before every 180 | subsequent read of that same field. Writes and reads of volatile 181 | fields have similar memory consistency effects as entering and exiting 182 | monitors, but do not entail mutual exclusion locking. 183 | 184 |
  • A call to start on a thread happens-before any action in 185 | the started thread. 186 | 187 |
  • All actions in a thread happen-before any other thread 188 | successfully returns from a join on that thread. 189 | 190 |
191 |
192 |
Since:
193 |
9
194 |
195 |
196 | 197 |
198 | 199 | 200 | 201 | 202 | 203 | 204 | 213 |
214 | 241 | 242 |

Copyright © 2021. All rights reserved.

243 | 244 | 245 | -------------------------------------------------------------------------------- /docs/apidocs/java9/util/concurrent/package-tree.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | java9.util.concurrent Class Hierarchy (net.sourceforge.streamsupport:android-retrofuture 1.7.4 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 43 |
44 | 71 | 72 |
73 |

Hierarchy For Package java9.util.concurrent

74 |
75 |
76 |

Class Hierarchy

77 | 97 |

Interface Hierarchy

98 | 102 |
103 | 104 |
105 | 106 | 107 | 108 | 109 | 110 | 111 | 120 |
121 | 148 | 149 |

Copyright © 2021. All rights reserved.

150 | 151 | 152 | -------------------------------------------------------------------------------- /docs/apidocs/java9/util/concurrent/package-use.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Uses of Package java9.util.concurrent (net.sourceforge.streamsupport:android-retrofuture 1.7.4 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 43 |
44 | 71 | 72 |
73 |

Uses of Package
java9.util.concurrent

74 |
75 |
76 |
    77 |
  • 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 93 | 94 | 95 | 99 | 100 | 101 |
    Classes in java9.util.concurrent used by java9.util.concurrent 
    Class and Description
    CompletableFuture 88 |
    A Future that may be explicitly completed (setting its 89 | value and status), and may be used as a CompletionStage, 90 | supporting dependent functions and actions that trigger upon its 91 | completion.
    92 |
    CompletionStage 96 |
    A stage of a possibly asynchronous computation, that performs an 97 | action or computes a value when another CompletionStage completes.
    98 |
    102 |
  • 103 |
104 |
105 | 106 |
107 | 108 | 109 | 110 | 111 | 112 | 113 | 122 |
123 | 150 | 151 |

Copyright © 2021. All rights reserved.

152 | 153 | 154 | -------------------------------------------------------------------------------- /docs/apidocs/overview-tree.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Class Hierarchy (net.sourceforge.streamsupport:android-retrofuture 1.7.4 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 43 |
44 | 71 | 72 |
73 |

Hierarchy For All Packages

74 | Package Hierarchies: 75 | 78 |
79 |
80 |

Class Hierarchy

81 | 101 |

Interface Hierarchy

102 | 106 |
107 | 108 |
109 | 110 | 111 | 112 | 113 | 114 | 115 | 124 |
125 | 152 | 153 |

Copyright © 2021. All rights reserved.

154 | 155 | 156 | -------------------------------------------------------------------------------- /docs/apidocs/package-list: -------------------------------------------------------------------------------- 1 | java9.util.concurrent 2 | -------------------------------------------------------------------------------- /docs/apidocs/script.js: -------------------------------------------------------------------------------- 1 | function show(type) 2 | { 3 | count = 0; 4 | for (var key in methods) { 5 | var row = document.getElementById(key); 6 | if ((methods[key] & type) != 0) { 7 | row.style.display = ''; 8 | row.className = (count++ % 2) ? rowColor : altColor; 9 | } 10 | else 11 | row.style.display = 'none'; 12 | } 13 | updateTabs(type); 14 | } 15 | 16 | function updateTabs(type) 17 | { 18 | for (var value in tabs) { 19 | var sNode = document.getElementById(tabs[value][0]); 20 | var spanNode = sNode.firstChild; 21 | if (value == type) { 22 | sNode.className = activeTableTab; 23 | spanNode.innerHTML = tabs[value][1]; 24 | } 25 | else { 26 | sNode.className = tableTab; 27 | spanNode.innerHTML = "" + tabs[value][1] + ""; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /docs/apidocs/serialized-form.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Serialized Form (net.sourceforge.streamsupport:android-retrofuture 1.7.4 API) 8 | 9 | 10 | 11 | 12 | 13 | 23 | 26 | 27 |
28 | 29 | 30 | 31 | 32 | 33 | 34 | 43 |
44 | 71 | 72 |
73 |

Serialized Form

74 |
75 |
76 |
    77 |
  • 78 |

    Package java9.util.concurrent

    79 |
      80 |
    • 81 | 82 | 83 |

      Class java9.util.concurrent.CompletionException extends RuntimeException implements Serializable

      84 |
      85 |
      serialVersionUID:
      86 |
      7830266012832686185L
      87 |
      88 |
    • 89 |
    • 90 | 91 | 92 |

      Class java9.util.concurrent.CountedCompleter extends java9.util.concurrent.ForkJoinTask<T> implements Serializable

      93 |
      94 |
      serialVersionUID:
      95 |
      5232453752276485070L
      96 |
      97 |
        98 |
      • 99 |

        Serialized Fields

        100 |
          101 |
        • 102 |

          completer

          103 |
          java9.util.concurrent.CountedCompleter<T> completer
          104 |
        • 105 |
        • 106 |

          pending

          107 |
          int pending
          108 |
        • 109 |
        110 |
      • 111 |
      112 |
    • 113 |
    • 114 | 115 | 116 |

      Class java9.util.concurrent.ForkJoinTask extends Object implements Serializable

      117 |
      118 |
      serialVersionUID:
      119 |
      -7721805057305804111L
      120 |
      121 | 157 |
    • 158 |
    • 159 | 160 | 161 |

      Class java9.util.concurrent.RecursiveAction extends java9.util.concurrent.ForkJoinTask<Void> implements Serializable

      162 |
      163 |
      serialVersionUID:
      164 |
      5232453952276485070L
      165 |
      166 |
    • 167 |
    • 168 | 169 | 170 |

      Class java9.util.concurrent.RecursiveTask extends java9.util.concurrent.ForkJoinTask<V> implements Serializable

      171 |
      172 |
      serialVersionUID:
      173 |
      5232453952276485270L
      174 |
      175 |
        176 |
      • 177 |

        Serialized Fields

        178 |
          179 |
        • 180 |

          result

          181 |
          Object result
          182 |
        • 183 |
        184 |
      • 185 |
      186 |
    • 187 |
    • 188 | 189 | 190 |

      Class java9.util.concurrent.ThreadLocalRandom extends Random implements Serializable

      191 |
      192 |
      serialVersionUID:
      193 |
      9123313859120073139L
      194 |
      195 |
        196 |
      • 197 |

        Serialization Methods

        198 |
          199 |
        • 200 |

          writeObject

          201 |
          private void writeObject(ObjectOutputStream arg0)
          202 |                   throws IOException
          203 |
          204 |
          Throws:
          205 |
          IOException
          206 |
          207 |
        • 208 |
        • 209 |

          readResolve

          210 |
          private Object readResolve()
          211 |
        • 212 |
        213 |
      • 214 |
      215 |
    • 216 |
    217 |
  • 218 |
219 |
220 | 221 |
222 | 223 | 224 | 225 | 226 | 227 | 228 | 237 |
238 | 265 | 266 |

Copyright © 2021. All rights reserved.

267 | 268 | 269 | -------------------------------------------------------------------------------- /docs/apidocs/stylesheet.css: -------------------------------------------------------------------------------- 1 | /* Javadoc style sheet */ 2 | /* 3 | Overall document style 4 | */ 5 | 6 | @import url('resources/fonts/dejavu.css'); 7 | 8 | body { 9 | background-color:#ffffff; 10 | color:#353833; 11 | font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; 12 | font-size:14px; 13 | margin:0; 14 | } 15 | a:link, a:visited { 16 | text-decoration:none; 17 | color:#4A6782; 18 | } 19 | a:hover, a:focus { 20 | text-decoration:none; 21 | color:#bb7a2a; 22 | } 23 | a:active { 24 | text-decoration:none; 25 | color:#4A6782; 26 | } 27 | a[name] { 28 | color:#353833; 29 | } 30 | a[name]:hover { 31 | text-decoration:none; 32 | color:#353833; 33 | } 34 | pre { 35 | font-family:'DejaVu Sans Mono', monospace; 36 | font-size:14px; 37 | } 38 | h1 { 39 | font-size:20px; 40 | } 41 | h2 { 42 | font-size:18px; 43 | } 44 | h3 { 45 | font-size:16px; 46 | font-style:italic; 47 | } 48 | h4 { 49 | font-size:13px; 50 | } 51 | h5 { 52 | font-size:12px; 53 | } 54 | h6 { 55 | font-size:11px; 56 | } 57 | ul { 58 | list-style-type:disc; 59 | } 60 | code, tt { 61 | font-family:'DejaVu Sans Mono', monospace; 62 | font-size:14px; 63 | padding-top:4px; 64 | margin-top:8px; 65 | line-height:1.4em; 66 | } 67 | dt code { 68 | font-family:'DejaVu Sans Mono', monospace; 69 | font-size:14px; 70 | padding-top:4px; 71 | } 72 | table tr td dt code { 73 | font-family:'DejaVu Sans Mono', monospace; 74 | font-size:14px; 75 | vertical-align:top; 76 | padding-top:4px; 77 | } 78 | sup { 79 | font-size:8px; 80 | } 81 | /* 82 | Document title and Copyright styles 83 | */ 84 | .clear { 85 | clear:both; 86 | height:0px; 87 | overflow:hidden; 88 | } 89 | .aboutLanguage { 90 | float:right; 91 | padding:0px 21px; 92 | font-size:11px; 93 | z-index:200; 94 | margin-top:-9px; 95 | } 96 | .legalCopy { 97 | margin-left:.5em; 98 | } 99 | .bar a, .bar a:link, .bar a:visited, .bar a:active { 100 | color:#FFFFFF; 101 | text-decoration:none; 102 | } 103 | .bar a:hover, .bar a:focus { 104 | color:#bb7a2a; 105 | } 106 | .tab { 107 | background-color:#0066FF; 108 | color:#ffffff; 109 | padding:8px; 110 | width:5em; 111 | font-weight:bold; 112 | } 113 | /* 114 | Navigation bar styles 115 | */ 116 | .bar { 117 | background-color:#4D7A97; 118 | color:#FFFFFF; 119 | padding:.8em .5em .4em .8em; 120 | height:auto;/*height:1.8em;*/ 121 | font-size:11px; 122 | margin:0; 123 | } 124 | .topNav { 125 | background-color:#4D7A97; 126 | color:#FFFFFF; 127 | float:left; 128 | padding:0; 129 | width:100%; 130 | clear:right; 131 | height:2.8em; 132 | padding-top:10px; 133 | overflow:hidden; 134 | font-size:12px; 135 | } 136 | .bottomNav { 137 | margin-top:10px; 138 | background-color:#4D7A97; 139 | color:#FFFFFF; 140 | float:left; 141 | padding:0; 142 | width:100%; 143 | clear:right; 144 | height:2.8em; 145 | padding-top:10px; 146 | overflow:hidden; 147 | font-size:12px; 148 | } 149 | .subNav { 150 | background-color:#dee3e9; 151 | float:left; 152 | width:100%; 153 | overflow:hidden; 154 | font-size:12px; 155 | } 156 | .subNav div { 157 | clear:left; 158 | float:left; 159 | padding:0 0 5px 6px; 160 | text-transform:uppercase; 161 | } 162 | ul.navList, ul.subNavList { 163 | float:left; 164 | margin:0 25px 0 0; 165 | padding:0; 166 | } 167 | ul.navList li{ 168 | list-style:none; 169 | float:left; 170 | padding: 5px 6px; 171 | text-transform:uppercase; 172 | } 173 | ul.subNavList li{ 174 | list-style:none; 175 | float:left; 176 | } 177 | .topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { 178 | color:#FFFFFF; 179 | text-decoration:none; 180 | text-transform:uppercase; 181 | } 182 | .topNav a:hover, .bottomNav a:hover { 183 | text-decoration:none; 184 | color:#bb7a2a; 185 | text-transform:uppercase; 186 | } 187 | .navBarCell1Rev { 188 | background-color:#F8981D; 189 | color:#253441; 190 | margin: auto 5px; 191 | } 192 | .skipNav { 193 | position:absolute; 194 | top:auto; 195 | left:-9999px; 196 | overflow:hidden; 197 | } 198 | /* 199 | Page header and footer styles 200 | */ 201 | .header, .footer { 202 | clear:both; 203 | margin:0 20px; 204 | padding:5px 0 0 0; 205 | } 206 | .indexHeader { 207 | margin:10px; 208 | position:relative; 209 | } 210 | .indexHeader span{ 211 | margin-right:15px; 212 | } 213 | .indexHeader h1 { 214 | font-size:13px; 215 | } 216 | .title { 217 | color:#2c4557; 218 | margin:10px 0; 219 | } 220 | .subTitle { 221 | margin:5px 0 0 0; 222 | } 223 | .header ul { 224 | margin:0 0 15px 0; 225 | padding:0; 226 | } 227 | .footer ul { 228 | margin:20px 0 5px 0; 229 | } 230 | .header ul li, .footer ul li { 231 | list-style:none; 232 | font-size:13px; 233 | } 234 | /* 235 | Heading styles 236 | */ 237 | div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { 238 | background-color:#dee3e9; 239 | border:1px solid #d0d9e0; 240 | margin:0 0 6px -8px; 241 | padding:7px 5px; 242 | } 243 | ul.blockList ul.blockList ul.blockList li.blockList h3 { 244 | background-color:#dee3e9; 245 | border:1px solid #d0d9e0; 246 | margin:0 0 6px -8px; 247 | padding:7px 5px; 248 | } 249 | ul.blockList ul.blockList li.blockList h3 { 250 | padding:0; 251 | margin:15px 0; 252 | } 253 | ul.blockList li.blockList h2 { 254 | padding:0px 0 20px 0; 255 | } 256 | /* 257 | Page layout container styles 258 | */ 259 | .contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { 260 | clear:both; 261 | padding:10px 20px; 262 | position:relative; 263 | } 264 | .indexContainer { 265 | margin:10px; 266 | position:relative; 267 | font-size:12px; 268 | } 269 | .indexContainer h2 { 270 | font-size:13px; 271 | padding:0 0 3px 0; 272 | } 273 | .indexContainer ul { 274 | margin:0; 275 | padding:0; 276 | } 277 | .indexContainer ul li { 278 | list-style:none; 279 | padding-top:2px; 280 | } 281 | .contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { 282 | font-size:12px; 283 | font-weight:bold; 284 | margin:10px 0 0 0; 285 | color:#4E4E4E; 286 | } 287 | .contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { 288 | margin:5px 0 10px 0px; 289 | font-size:14px; 290 | font-family:'DejaVu Sans Mono',monospace; 291 | } 292 | .serializedFormContainer dl.nameValue dt { 293 | margin-left:1px; 294 | font-size:1.1em; 295 | display:inline; 296 | font-weight:bold; 297 | } 298 | .serializedFormContainer dl.nameValue dd { 299 | margin:0 0 0 1px; 300 | font-size:1.1em; 301 | display:inline; 302 | } 303 | /* 304 | List styles 305 | */ 306 | ul.horizontal li { 307 | display:inline; 308 | font-size:0.9em; 309 | } 310 | ul.inheritance { 311 | margin:0; 312 | padding:0; 313 | } 314 | ul.inheritance li { 315 | display:inline; 316 | list-style:none; 317 | } 318 | ul.inheritance li ul.inheritance { 319 | margin-left:15px; 320 | padding-left:15px; 321 | padding-top:1px; 322 | } 323 | ul.blockList, ul.blockListLast { 324 | margin:10px 0 10px 0; 325 | padding:0; 326 | } 327 | ul.blockList li.blockList, ul.blockListLast li.blockList { 328 | list-style:none; 329 | margin-bottom:15px; 330 | line-height:1.4; 331 | } 332 | ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { 333 | padding:0px 20px 5px 10px; 334 | border:1px solid #ededed; 335 | background-color:#f8f8f8; 336 | } 337 | ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { 338 | padding:0 0 5px 8px; 339 | background-color:#ffffff; 340 | border:none; 341 | } 342 | ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { 343 | margin-left:0; 344 | padding-left:0; 345 | padding-bottom:15px; 346 | border:none; 347 | } 348 | ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { 349 | list-style:none; 350 | border-bottom:none; 351 | padding-bottom:0; 352 | } 353 | table tr td dl, table tr td dl dt, table tr td dl dd { 354 | margin-top:0; 355 | margin-bottom:1px; 356 | } 357 | /* 358 | Table styles 359 | */ 360 | .overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary { 361 | width:100%; 362 | border-left:1px solid #EEE; 363 | border-right:1px solid #EEE; 364 | border-bottom:1px solid #EEE; 365 | } 366 | .overviewSummary, .memberSummary { 367 | padding:0px; 368 | } 369 | .overviewSummary caption, .memberSummary caption, .typeSummary caption, 370 | .useSummary caption, .constantsSummary caption, .deprecatedSummary caption { 371 | position:relative; 372 | text-align:left; 373 | background-repeat:no-repeat; 374 | color:#253441; 375 | font-weight:bold; 376 | clear:none; 377 | overflow:hidden; 378 | padding:0px; 379 | padding-top:10px; 380 | padding-left:1px; 381 | margin:0px; 382 | white-space:pre; 383 | } 384 | .overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, 385 | .useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link, 386 | .overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, 387 | .useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, 388 | .overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, 389 | .useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, 390 | .overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, 391 | .useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited { 392 | color:#FFFFFF; 393 | } 394 | .overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, 395 | .useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span { 396 | white-space:nowrap; 397 | padding-top:5px; 398 | padding-left:12px; 399 | padding-right:12px; 400 | padding-bottom:7px; 401 | display:inline-block; 402 | float:left; 403 | background-color:#F8981D; 404 | border: none; 405 | height:16px; 406 | } 407 | .memberSummary caption span.activeTableTab span { 408 | white-space:nowrap; 409 | padding-top:5px; 410 | padding-left:12px; 411 | padding-right:12px; 412 | margin-right:3px; 413 | display:inline-block; 414 | float:left; 415 | background-color:#F8981D; 416 | height:16px; 417 | } 418 | .memberSummary caption span.tableTab span { 419 | white-space:nowrap; 420 | padding-top:5px; 421 | padding-left:12px; 422 | padding-right:12px; 423 | margin-right:3px; 424 | display:inline-block; 425 | float:left; 426 | background-color:#4D7A97; 427 | height:16px; 428 | } 429 | .memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab { 430 | padding-top:0px; 431 | padding-left:0px; 432 | padding-right:0px; 433 | background-image:none; 434 | float:none; 435 | display:inline; 436 | } 437 | .overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, 438 | .useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd { 439 | display:none; 440 | width:5px; 441 | position:relative; 442 | float:left; 443 | background-color:#F8981D; 444 | } 445 | .memberSummary .activeTableTab .tabEnd { 446 | display:none; 447 | width:5px; 448 | margin-right:3px; 449 | position:relative; 450 | float:left; 451 | background-color:#F8981D; 452 | } 453 | .memberSummary .tableTab .tabEnd { 454 | display:none; 455 | width:5px; 456 | margin-right:3px; 457 | position:relative; 458 | background-color:#4D7A97; 459 | float:left; 460 | 461 | } 462 | .overviewSummary td, .memberSummary td, .typeSummary td, 463 | .useSummary td, .constantsSummary td, .deprecatedSummary td { 464 | text-align:left; 465 | padding:0px 0px 12px 10px; 466 | width:100%; 467 | } 468 | th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th, 469 | td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{ 470 | vertical-align:top; 471 | padding-right:0px; 472 | padding-top:8px; 473 | padding-bottom:3px; 474 | } 475 | th.colFirst, th.colLast, th.colOne, .constantsSummary th { 476 | background:#dee3e9; 477 | text-align:left; 478 | padding:8px 3px 3px 7px; 479 | } 480 | td.colFirst, th.colFirst { 481 | white-space:nowrap; 482 | font-size:13px; 483 | } 484 | td.colLast, th.colLast { 485 | font-size:13px; 486 | } 487 | td.colOne, th.colOne { 488 | font-size:13px; 489 | } 490 | .overviewSummary td.colFirst, .overviewSummary th.colFirst, 491 | .overviewSummary td.colOne, .overviewSummary th.colOne, 492 | .memberSummary td.colFirst, .memberSummary th.colFirst, 493 | .memberSummary td.colOne, .memberSummary th.colOne, 494 | .typeSummary td.colFirst{ 495 | width:25%; 496 | vertical-align:top; 497 | } 498 | td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { 499 | font-weight:bold; 500 | } 501 | .tableSubHeadingColor { 502 | background-color:#EEEEFF; 503 | } 504 | .altColor { 505 | background-color:#FFFFFF; 506 | } 507 | .rowColor { 508 | background-color:#EEEEEF; 509 | } 510 | /* 511 | Content styles 512 | */ 513 | .description pre { 514 | margin-top:0; 515 | } 516 | .deprecatedContent { 517 | margin:0; 518 | padding:10px 0; 519 | } 520 | .docSummary { 521 | padding:0; 522 | } 523 | 524 | ul.blockList ul.blockList ul.blockList li.blockList h3 { 525 | font-style:normal; 526 | } 527 | 528 | div.block { 529 | font-size:14px; 530 | font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; 531 | } 532 | 533 | td.colLast div { 534 | padding-top:0px; 535 | } 536 | 537 | 538 | td.colLast a { 539 | padding-bottom:3px; 540 | } 541 | /* 542 | Formatting effect styles 543 | */ 544 | .sourceLineNo { 545 | color:green; 546 | padding:0 30px 0 0; 547 | } 548 | h1.hidden { 549 | visibility:hidden; 550 | overflow:hidden; 551 | font-size:10px; 552 | } 553 | .block { 554 | display:block; 555 | margin:3px 10px 2px 0px; 556 | color:#474747; 557 | } 558 | .deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink, 559 | .overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel, 560 | .seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink { 561 | font-weight:bold; 562 | } 563 | .deprecationComment, .emphasizedPhrase, .interfaceName { 564 | font-style:italic; 565 | } 566 | 567 | div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase, 568 | div.block div.block span.interfaceName { 569 | font-style:normal; 570 | } 571 | 572 | div.contentContainer ul.blockList li.blockList h2{ 573 | padding-bottom:0px; 574 | } 575 | -------------------------------------------------------------------------------- /docs/images/bg_hr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/retrostreams/android-retrofuture/9556218bff68820626f841a5bf80709cba7278e8/docs/images/bg_hr.png -------------------------------------------------------------------------------- /docs/images/blacktocat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/retrostreams/android-retrofuture/9556218bff68820626f841a5bf80709cba7278e8/docs/images/blacktocat.png -------------------------------------------------------------------------------- /docs/images/icon_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/retrostreams/android-retrofuture/9556218bff68820626f841a5bf80709cba7278e8/docs/images/icon_download.png -------------------------------------------------------------------------------- /docs/images/sprite_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/retrostreams/android-retrofuture/9556218bff68820626f841a5bf80709cba7278e8/docs/images/sprite_download.png -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | android-retrofuture : Backport of Java 9 (JEP 266) CompletableFuture API for Android Studio 3.x D8 / desugar toolchain 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | View on GitHub 21 | 22 |

android-retrofuture

23 |

Backport of Java 9 (JEP 266) CompletableFuture
API for Android Studio 3.x D8 / desugar toolchain

Forked from streamsupport

24 | 25 |
26 |
27 | 28 | 29 |
30 |
31 | 32 | 33 |

Javadoc online

34 | 35 |

See the online Javadoc for more details about the API

36 | 37 | 38 |

Downloads

39 | 40 | 45 | 46 | 47 |

Dependencies

48 |

android-retrofuture depends on android-retrostreams

49 | 50 | 51 |

License

52 |

android-retrofuture is free to use and licensed under the GPL2, CE
(GNU General Public License, version 2, with the Classpath Exception)

53 | 54 | 55 | 61 | 62 |
63 | 64 |
65 | 66 | 67 | 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /docs/scripts/prettify/prettify.css: -------------------------------------------------------------------------------- 1 | .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.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,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} -------------------------------------------------------------------------------- /docs/scripts/prettify/prettify.js: -------------------------------------------------------------------------------- 1 | !function(){var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; 2 | (function(){function S(a){function d(e){var b=e.charCodeAt(0);if(b!==92)return b;var a=e.charAt(1);return(b=r[a])?b:"0"<=a&&a<="7"?parseInt(e.substring(1),8):a==="u"||a==="x"?parseInt(e.substring(2),16):e.charCodeAt(1)}function g(e){if(e<32)return(e<16?"\\x0":"\\x")+e.toString(16);e=String.fromCharCode(e);return e==="\\"||e==="-"||e==="]"||e==="^"?"\\"+e:e}function b(e){var b=e.substring(1,e.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),e=[],a= 3 | b[0]==="^",c=["["];a&&c.push("^");for(var a=a?1:0,f=b.length;a122||(l<65||h>90||e.push([Math.max(65,h)|32,Math.min(l,90)|32]),l<97||h>122||e.push([Math.max(97,h)&-33,Math.min(l,122)&-33]))}}e.sort(function(e,a){return e[0]-a[0]||a[1]-e[1]});b=[];f=[];for(a=0;ah[0]&&(h[1]+1>h[0]&&c.push("-"),c.push(g(h[1])));c.push("]");return c.join("")}function s(e){for(var a=e.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),c=a.length,d=[],f=0,h=0;f=2&&e==="["?a[f]=b(l):e!=="\\"&&(a[f]=l.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return a.join("")}for(var x=0,m=!1,j=!1,k=0,c=a.length;k=5&&"lang-"===w.substring(0,5))&&!(t&&typeof t[1]==="string"))f=!1,w="src";f||(r[z]=w)}h=c;c+=z.length;if(f){f=t[1];var l=z.indexOf(f),B=l+f.length;t[2]&&(B=z.length-t[2].length,l=B-f.length);w=w.substring(5);H(j+h,z.substring(0,l),g,k);H(j+h+l,f,I(w,f),k);H(j+h+B,z.substring(B),g,k)}else k.push(j+h,w)}a.g=k}var b={},s;(function(){for(var g=a.concat(d),j=[],k={},c=0,i=g.length;c=0;)b[n.charAt(e)]=r;r=r[1];n=""+r;k.hasOwnProperty(n)||(j.push(r),k[n]=q)}j.push(/[\S\s]/);s=S(j)})();var x=d.length;return g}function v(a){var d=[],g=[];a.tripleQuotedStrings?d.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?d.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, 10 | q,"'\"`"]):d.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&g.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var b=a.hashComments;b&&(a.cStyleComments?(b>1?d.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):d.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),g.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,q])):d.push(["com", 11 | /^#[^\n\r]*/,q,"#"]));a.cStyleComments&&(g.push(["com",/^\/\/[^\n\r]*/,q]),g.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));if(b=a.regexLiterals){var s=(b=b>1?"":"\n\r")?".":"[\\S\\s]";g.push(["lang-regex",RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*("+("/(?=[^/*"+b+"])(?:[^/\\x5B\\x5C"+b+"]|\\x5C"+s+"|\\x5B(?:[^\\x5C\\x5D"+b+"]|\\x5C"+ 12 | s+")*(?:\\x5D|$))+/")+")")])}(b=a.types)&&g.push(["typ",b]);b=(""+a.keywords).replace(/^ | $/g,"");b.length&&g.push(["kwd",RegExp("^(?:"+b.replace(/[\s,]+/g,"|")+")\\b"),q]);d.push(["pln",/^\s+/,q," \r\n\t\u00a0"]);b="^.[^\\s\\w.$@'\"`/\\\\]*";a.regexLiterals&&(b+="(?!s*/)");g.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/, 13 | q],["pun",RegExp(b),q]);return C(d,g)}function J(a,d,g){function b(a){var c=a.nodeType;if(c==1&&!x.test(a.className))if("br"===a.nodeName)s(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)b(a);else if((c==3||c==4)&&g){var d=a.nodeValue,i=d.match(m);if(i)c=d.substring(0,i.index),a.nodeValue=c,(d=d.substring(i.index+i[0].length))&&a.parentNode.insertBefore(j.createTextNode(d),a.nextSibling),s(a),c||a.parentNode.removeChild(a)}}function s(a){function b(a,c){var d= 14 | c?a.cloneNode(!1):a,e=a.parentNode;if(e){var e=b(e,1),g=a.nextSibling;e.appendChild(d);for(var i=g;i;i=g)g=i.nextSibling,e.appendChild(i)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),d;(d=a.parentNode)&&d.nodeType===1;)a=d;c.push(a)}for(var x=/(?:^|\s)nocode(?:\s|$)/,m=/\r\n?|\n/,j=a.ownerDocument,k=j.createElement("li");a.firstChild;)k.appendChild(a.firstChild);for(var c=[k],i=0;i=0;){var b=d[g];F.hasOwnProperty(b)?D.console&&console.warn("cannot override language handler %s",b):F[b]=a}}function I(a,d){if(!a||!F.hasOwnProperty(a))a=/^\s*=l&&(b+=2);g>=B&&(r+=2)}}finally{if(f)f.style.display=h}}catch(u){D.console&&console.log(u&&u.stack||u)}}var D=window,y=["break,continue,do,else,for,if,return,while"],E=[[y,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], 18 | "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],M=[E,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],N=[E,"abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"], 19 | O=[N,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],E=[E,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],P=[y,"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"], 20 | Q=[y,"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"],W=[y,"as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"],y=[y,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],R=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/, 21 | V=/\S/,X=v({keywords:[M,O,E,"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",P,Q,y],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),F={};p(X,["default-code"]);p(C([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-", 22 | /^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);p(C([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/], 23 | ["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);p(C([],[["atv",/^[\S\s]+/]]),["uq.val"]);p(v({keywords:M,hashComments:!0,cStyleComments:!0,types:R}),["c","cc","cpp","cxx","cyc","m"]);p(v({keywords:"null,true,false"}),["json"]);p(v({keywords:O,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:R}), 24 | ["cs"]);p(v({keywords:N,cStyleComments:!0}),["java"]);p(v({keywords:y,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]);p(v({keywords:P,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]);p(v({keywords:"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",hashComments:!0,multiLineStrings:!0,regexLiterals:2}),["perl","pl","pm"]);p(v({keywords:Q, 25 | hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]);p(v({keywords:E,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]);p(v({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);p(v({keywords:W,cStyleComments:!0,multilineStrings:!0}),["rc","rs","rust"]); 26 | p(C([],[["str",/^[\S\s]+/]]),["regex"]);var Y=D.PR={createSimpleLexer:C,registerLangHandler:p,sourceDecorator:v,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:D.prettyPrintOne=function(a,d,g){var b=document.createElement("div");b.innerHTML="
"+a+"
";b=b.firstChild;g&&J(b,g,!0);K({h:d,j:g,c:b,i:1}); 27 | return b.innerHTML},prettyPrint:D.prettyPrint=function(a,d){function g(){for(var b=D.PR_SHOULD_USE_CONTINUATION?c.now()+250:Infinity;i=0;){var M=A[m],T=M.src.match(/^[^#?]*\/run_prettify\.js(\?[^#]*)?(?:#.*)?$/);if(T){z=T[1]||"";M.parentNode.removeChild(M);break}}var S=!0,D= 4 | [],N=[],K=[];z.replace(/[&?]([^&=]+)=([^&]+)/g,function(e,j,w){w=decodeURIComponent(w);j=decodeURIComponent(j);j=="autorun"?S=!/^[0fn]/i.test(w):j=="lang"?D.push(w):j=="skin"?N.push(w):j=="callback"&&K.push(w)});m=0;for(z=D.length;m122||(o<65||k>90||f.push([Math.max(65,k)|32,Math.min(o,90)|32]),o<97||k>122||f.push([Math.max(97,k)&-33,Math.min(o,122)&-33]))}}f.sort(function(f,a){return f[0]- 8 | a[0]||a[1]-f[1]});b=[];g=[];for(a=0;ak[0]&&(k[1]+1>k[0]&&c.push("-"),c.push(h(k[1])));c.push("]");return c.join("")}function e(f){for(var a=f.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),c=a.length,d=[],g=0,k=0;g=2&&f==="["?a[g]=b(o):f!=="\\"&&(a[g]=o.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return a.join("")}for(var j=0,F=!1,l=!1,I=0,c=a.length;I=5&&"lang-"===y.substring(0,5))&&!(u&&typeof u[1]==="string"))g=!1,y="src";g||(m[B]=y)}k=c;c+=B.length;if(g){g=u[1];var o=B.indexOf(g),H=o+g.length;u[2]&&(H=B.length-u[2].length,o=H-g.length);y=y.substring(5);n(l+k,B.substring(0,o),h,j);n(l+k+o,g,A(y, 13 | g),j);n(l+k+H,B.substring(H),h,j)}else j.push(l+k,y)}a.g=j}var b={},e;(function(){for(var h=a.concat(d),l=[],i={},c=0,p=h.length;c=0;)b[q.charAt(f)]=m;m=m[1];q=""+m;i.hasOwnProperty(q)||(l.push(m),i[q]=r)}l.push(/[\S\s]/);e=j(l)})();var i=d.length;return h}function t(a){var d=[],h=[];a.tripleQuotedStrings?d.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/, 14 | r,"'\""]):a.multiLineStrings?d.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,r,"'\"`"]):d.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,r,"\"'"]);a.verbatimStrings&&h.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,r]);var b=a.hashComments;b&&(a.cStyleComments?(b>1?d.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,r,"#"]):d.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/, 15 | r,"#"]),h.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,r])):d.push(["com",/^#[^\n\r]*/,r,"#"]));a.cStyleComments&&(h.push(["com",/^\/\/[^\n\r]*/,r]),h.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,r]));if(b=a.regexLiterals){var e=(b=b>1?"":"\n\r")?".":"[\\S\\s]";h.push(["lang-regex",RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*("+ 16 | ("/(?=[^/*"+b+"])(?:[^/\\x5B\\x5C"+b+"]|\\x5C"+e+"|\\x5B(?:[^\\x5C\\x5D"+b+"]|\\x5C"+e+")*(?:\\x5D|$))+/")+")")])}(b=a.types)&&h.push(["typ",b]);b=(""+a.keywords).replace(/^ | $/g,"");b.length&&h.push(["kwd",RegExp("^(?:"+b.replace(/[\s,]+/g,"|")+")\\b"),r]);d.push(["pln",/^\s+/,r," \r\n\t\u00a0"]);b="^.[^\\s\\w.$@'\"`/\\\\]*";a.regexLiterals&&(b+="(?!s*/)");h.push(["lit",/^@[$_a-z][\w$@]*/i,r],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,r],["pln",/^[$_a-z][\w$@]*/i,r],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i, 17 | r,"0123456789"],["pln",/^\\[\S\s]?/,r],["pun",RegExp(b),r]);return C(d,h)}function z(a,d,h){function b(a){var c=a.nodeType;if(c==1&&!j.test(a.className))if("br"===a.nodeName)e(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)b(a);else if((c==3||c==4)&&h){var d=a.nodeValue,i=d.match(m);if(i)c=d.substring(0,i.index),a.nodeValue=c,(d=d.substring(i.index+i[0].length))&&a.parentNode.insertBefore(l.createTextNode(d),a.nextSibling),e(a),c||a.parentNode.removeChild(a)}} 18 | function e(a){function b(a,c){var d=c?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),h=a.nextSibling;f.appendChild(d);for(var e=h;e;e=h)h=e.nextSibling,f.appendChild(e)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),d;(d=a.parentNode)&&d.nodeType===1;)a=d;c.push(a)}for(var j=/(?:^|\s)nocode(?:\s|$)/,m=/\r\n?|\n/,l=a.ownerDocument,i=l.createElement("li");a.firstChild;)i.appendChild(a.firstChild);for(var c=[i],p=0;p=0;){var b=d[h];U.hasOwnProperty(b)?V.console&&console.warn("cannot override language handler %s",b):U[b]=a}}function A(a,d){if(!a||!U.hasOwnProperty(a))a=/^\s*=o&&(b+=2);h>=H&&(t+=2)}}finally{if(g)g.style.display=k}}catch(v){V.console&&console.log(v&&v.stack||v)}}var V=window,G=["break,continue,do,else,for,if,return,while"],O=[[G,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], 22 | "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],J=[O,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],K=[O,"abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"], 23 | L=[K,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],O=[O,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],M=[G,"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"], 24 | N=[G,"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"],R=[G,"as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"],G=[G,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],Q=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/, 25 | S=/\S/,T=t({keywords:[J,L,O,"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",M,N,G],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),U={};i(T,["default-code"]);i(C([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-", 26 | /^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);i(C([["pln",/^\s+/,r," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,r,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/], 27 | ["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);i(C([],[["atv",/^[\S\s]+/]]),["uq.val"]);i(t({keywords:J,hashComments:!0,cStyleComments:!0,types:Q}),["c","cc","cpp","cxx","cyc","m"]);i(t({keywords:"null,true,false"}),["json"]);i(t({keywords:L,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:Q}), 28 | ["cs"]);i(t({keywords:K,cStyleComments:!0}),["java"]);i(t({keywords:G,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]);i(t({keywords:M,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]);i(t({keywords:"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",hashComments:!0,multiLineStrings:!0,regexLiterals:2}),["perl","pl","pm"]);i(t({keywords:N, 29 | hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]);i(t({keywords:O,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]);i(t({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);i(t({keywords:R,cStyleComments:!0,multilineStrings:!0}),["rc","rs","rust"]); 30 | i(C([],[["str",/^[\S\s]+/]]),["regex"]);var X=V.PR={createSimpleLexer:C,registerLangHandler:i,sourceDecorator:t,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:function(a,d,e){var b=document.createElement("div");b.innerHTML="
"+a+"
";b=b.firstChild;e&&z(b,e,!0);D({h:d,j:e,c:b,i:1});return b.innerHTML}, 31 | prettyPrint:e=e=function(a,d){function e(){for(var b=V.PR_SHOULD_USE_CONTINUATION?c.now()+250:Infinity;p 3 | 4.0.0 4 | net.sourceforge.streamsupport 5 | android-retrofuture 6 | 1.7.4 7 | net.sourceforge.streamsupport:android-retrofuture 8 | Backport of Java 9 (JEP 266) CompletableFuture API for Android Studio 3+ 9 | desugar toolchain, forked from https://sourceforge.net/projects/streamsupport 10 | http://github.com/retrostreams/android-retrofuture/ 11 | 12 | 13 | GNU General Public License, version 2, with the Classpath Exception 14 | http://openjdk.java.net/legal/gplv2+ce.html 15 | 16 | 17 | CC0 1.0 Universal 18 | https://creativecommons.org/publicdomain/zero/1.0/ 19 | Creative Commons CC0 1.0 Universal license applies 20 | to the source code derived from the JSR-166 project as 21 | indicated in the respective source code files 22 | 23 | 24 | 25 | 26 | 27 | Stefan Zobel 28 | Spliterator@gmail.com 29 | net.sourceforge.streamsupport 30 | http://github.com/retrostreams/ 31 | 32 | 33 | 34 | https://github.com/retrostreams/android-retrofuture 35 | scm:git:https://github.com/retrostreams/android-retrofuture.git 36 | scm:git:https://github.com/retrostreams/android-retrofuture.git 37 | 38 | 39 | 40 | 41 | net.sourceforge.streamsupport 42 | android-retrostreams 43 | 1.7.4 44 | 45 | 46 | 47 | Cp1252 48 | 49 | 50 | 51 | 52 | maven-compiler-plugin 53 | 3.8.1 54 | 55 | 1.8 56 | 1.8 57 | 58 | 59 | 60 | org.apache.maven.plugins 61 | maven-source-plugin 62 | 3.0.1 63 | 64 | 65 | attach-sources 66 | 67 | jar 68 | 69 | 70 | 71 | 72 | 73 | org.apache.maven.plugins 74 | maven-javadoc-plugin 75 | 3.2.0 76 | 77 | 78 | attach-javadocs 79 | 80 | jar 81 | 82 | 83 | 84 | 85 | 86 | 87 | org.codehaus.mojo 88 | animal-sniffer-maven-plugin 89 | 1.16 90 | 91 | 92 | org.codehaus.mojo.signature 93 | java16 94 | 1.1 95 | 96 | 97 | sun.misc.Unsafe 98 | 99 | 100 | 101 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add any project specific keep options here: 2 | 3 | #-dontobfuscate 4 | #-dontshrink 5 | 6 | -keep class java9.** { *; } 7 | -keep interface java9.** { *; } 8 | -keep enum java9.** { *; } 9 | 10 | -dontwarn java9.** 11 | -dontwarn org.openjdk.** 12 | 13 | -dontnote java.util.Arrays* 14 | -dontnote java.util.HashMap* 15 | -dontnote java.util.concurrent.LinkedBlockingQueue* 16 | -dontnote java.util.concurrent.LinkedBlockingDeque* 17 | 18 | -------------------------------------------------------------------------------- /src/main/java/java9/util/concurrent/CompletionException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Written by Doug Lea with assistance from members of JCP JSR-166 3 | * Expert Group and released to the public domain, as explained at 4 | * http://creativecommons.org/publicdomain/zero/1.0/ 5 | */ 6 | /* 7 | * Any changes or additions made by the maintainers of the 8 | * streamsupport (https://github.com/stefan-zobel/streamsupport) 9 | * or retrostreams (https://github.com/retrostreams) libraries are 10 | * also released to the public domain, as explained at 11 | * https://creativecommons.org/publicdomain/zero/1.0/ 12 | */ 13 | package java9.util.concurrent; 14 | 15 | /** 16 | * Exception thrown when an error or other exception is encountered 17 | * in the course of completing a result or task. 18 | * 19 | * @since 1.8 20 | * @author Doug Lea 21 | */ 22 | public class CompletionException extends RuntimeException { 23 | // CVS rev. 1.3 24 | private static final long serialVersionUID = 7830266012832686185L; 25 | 26 | /** 27 | * Constructs a {@code CompletionException} with no detail message. 28 | * The cause is not initialized, and may subsequently be 29 | * initialized by a call to {@link #initCause(Throwable) initCause}. 30 | */ 31 | protected CompletionException() { } 32 | 33 | /** 34 | * Constructs a {@code CompletionException} with the specified detail 35 | * message. The cause is not initialized, and may subsequently be 36 | * initialized by a call to {@link #initCause(Throwable) initCause}. 37 | * 38 | * @param message the detail message 39 | */ 40 | protected CompletionException(String message) { 41 | super(message); 42 | } 43 | 44 | /** 45 | * Constructs a {@code CompletionException} with the specified detail 46 | * message and cause. 47 | * 48 | * @param message the detail message 49 | * @param cause the cause (which is saved for later retrieval by the 50 | * {@link #getCause()} method) 51 | */ 52 | public CompletionException(String message, Throwable cause) { 53 | super(message, cause); 54 | } 55 | 56 | /** 57 | * Constructs a {@code CompletionException} with the specified cause. 58 | * The detail message is set to {@code (cause == null ? null : 59 | * cause.toString())} (which typically contains the class and 60 | * detail message of {@code cause}). 61 | * 62 | * @param cause the cause (which is saved for later retrieval by the 63 | * {@link #getCause()} method) 64 | */ 65 | public CompletionException(Throwable cause) { 66 | super(cause); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/java9/util/concurrent/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. 3 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 | * 5 | * This code is free software; you can redistribute it and/or modify it 6 | * under the terms of the GNU General Public License version 2 only, as 7 | * published by the Free Software Foundation. Oracle designates this 8 | * particular file as subject to the "Classpath" exception as provided 9 | * by Oracle in the LICENSE file that accompanied this code. 10 | * 11 | * This code is distributed in the hope that it will be useful, but WITHOUT 12 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 | * version 2 for more details (a copy is included in the LICENSE file that 15 | * accompanied this code). 16 | * 17 | * You should have received a copy of the GNU General Public License version 18 | * 2 along with this work; if not, write to the Free Software Foundation, 19 | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 | * 21 | * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 | * or visit www.oracle.com if you need additional information or have any 23 | * questions. 24 | */ 25 | 26 | /** 27 | * Covers a backport of the upgraded (JEP 266) Java 9 CompletableFuture API 28 | * for Java 6 to 8 and Android developers. 29 | * 30 | * See JEP 266: More Concurrency Updates. 31 | * 32 | *

Memory Consistency Properties

33 | * 34 | * 36 | * Chapter 17 of The Java™ Language Specification defines 37 | * the happens-before relation on memory operations such as reads and 38 | * writes of shared variables. The results of a write by one thread are 39 | * guaranteed to be visible to a read by another thread only if the write 40 | * operation happens-before the read operation. The {@code synchronized} 41 | * and {@code volatile} constructs, as well as the {@code Thread.start()} and 42 | * {@code Thread.join()} methods, can form happens-before relationships. 43 | * In particular: 44 | * 45 | *
    46 | *
  • Each action in a thread happens-before every action in that thread 47 | * that comes later in the program's order. 48 | * 49 | *
  • An unlock ({@code synchronized} block or method exit) of a monitor 50 | * happens-before every subsequent lock ({@code synchronized} block or 51 | * method entry) of that same monitor. And because the happens-before 52 | * relation is transitive, all actions of a thread prior to unlocking 53 | * happen-before all actions subsequent to any thread locking that 54 | * monitor. 55 | * 56 | *
  • A write to a {@code volatile} field happens-before every 57 | * subsequent read of that same field. Writes and reads of {@code volatile} 58 | * fields have similar memory consistency effects as entering and exiting 59 | * monitors, but do not entail mutual exclusion locking. 60 | * 61 | *
  • A call to {@code start} on a thread happens-before any action in 62 | * the started thread. 63 | * 64 | *
  • All actions in a thread happen-before any other thread 65 | * successfully returns from a {@code join} on that thread. 66 | * 67 | *
68 | * 69 | * @since 9 70 | */ 71 | package java9.util.concurrent; --------------------------------------------------------------------------------