IMultilineElement representing a "package" declaration in a source file, or the implicit "main" package. Other source file elements defined within the scope of the package are maintained as subelements within the Package object.
The identity of the Package object only reflects its relative position in the ordered list of "package" keywords present in the source file. This is to support incremental updates while reparsing the file and to optimise performance of {@link TreeViewer#refresh}, which disfavours models that change contained objects' identities. Consequently, reordering package keywords within a source file is likely to suffer from low performance (this is supposed to be a rarely occuring case).
The Package element logically spans multiple lines, so that all elements belonging to the package are fully contained between its first and last line. The first line is the one containing the "package" keyword. The last line is the one containing the terminating } of the enclosing block, or the line containing the last token before the next "package" keyword in the same block, or the last line in file, whichever comes first.
@author jploski