You can make five requests on a compilation unit:
Request what? | Method | Result |
AST | getSyntaxTreeRequest() |
ISyntaxTreeRequestResult |
File scope | getFileScopeRequest() |
IFileScopeRequestResult |
Outgoing dependencies | getOutgoingDependenciesRequest() |
IOutoingDependenciesRequestResult |
ABC | getABCBytesRequest() |
IABCBytesRequestResult |
SWF tags | getSWFTagsRequest() |
ISWFTagsRequestResult |
It is common for one request to trigger other requests. For example, if you request the file scope for an AS file, the AST gets automatically requested.
Compilation units use Java Future
objects to fulfill
the requests. This allows multiple compilation units to compile
simultaneously on multiple threads.
The result objects that come back from the requests are cached in the compilation unit for subsequent access.