API Changes in Structure 5.0
Minor Java API Release
There are a few API additions coming with this release. The changes are backwards-compatible, except those in @Internal
interfaces.
Jira Version | New API Version |
---|---|
7.2+ | 16.10.0 |
See Structure API Versions for full version information and downloads.
Compatible Changes in the Java API
Horizontal scrolling
We have added a new parameter named "column display mode" to the view specification, with three new getters and setters:
ViewSpecification.getColumnDisplayMode()
ViewSpecification.Builder.getColumnDisplayMode()
ViewSpecification.Builder.setColumnDisplayMode(int)
Supported values are stored as int
constants in the new class ColumnDisplayMode
:
AUTO_FIT
means that the columns fill the entire width of the panel, growing or shrinking as necessary;SCROLLABLE
means that the columns always have their manual or preferred widths, and a horizontal scroll bar appears if needed.
The default column display mode is AUTO_FIT
.
New method in the Forest
interface
The new method copySubforestAtIndex(int)
returns a new forest that contains all descendants of the row at the given index. It is a counterpart to the existing method copySubforest(long)
, and it allows you to save an index lookup when you already have the index. The method is implemented in ArrayForest
.
New row semantics
We have added two new codes to the CoreSemantics
interface:
INSERTED
marks rows added by inserter generators;EXTENSION
marks rows added by extenders.
Please note that row semantics is still a work in progress, and CoreSemantics
is marked @Internal
.
Miscellaneous fixes
A few minor changes in AbstractAggregateLoader
, AbstractDistinctAggregateLoader
, and ReductionStrategy
are meant to prevent NullPointerException
in certain circumstances.
We have also added reentrancy protection to the item lookup code in StructureException
. Please note that item lookup is disabled by default since version 16.7.0 (Structure 4.4).
Incompatible changes in @Internal
interfaces
The method ForestAccessCache.removeOutOfScopeIssues()
was moved to a separate interface, ProjectScopeCache
. We have also added a new internal interface named SubTaskIssueCache
. Neither of the three interfaces is intended to be used by third-party developers at this point.