This article provides an introduction to the main concepts used in Structure. Before starting your work on integration with Structure, please familiarize yourself with these concepts.
Basic Concepts Overview
Concept | Short Definition | API Classes to Check |
---|---|---|
Structure | A named container for a hierarchical list. |
|
Forest | A hierarchical list. |
|
Row | A row is a unique, atomic element of a forest. |
|
Item | An item is a user-level object (like Issue) that is displayed in a row. |
|
Attribute | An attribute provides values of a certain type and meaning for forest rows. | AttributeSpec , StructureAttributeService |
Column | A column loads one or more attributes and displays information about forest rows. | ViewSpecification |
View | A view is a named collection of columns. | StructureView , StructureViewManager |
Important points:
- Structures are the main entities provided by Structure add-on. A structure has name and other attributes, like description, and it also has content, represented by a forest.
- A forest represents a structure's content. But it can also represent a result of a query or a hierarchical list received or stored somewhere else.
- Forest contains rows. Forest content is actually a list of pairs (
row ID, depth
). - A row has a numeric ID that uniquely identifies it in a forest. A forest may not contain the same row twice. (Although a row may be present in different forests.)
- When users look at a structure, they see a grid – each row in that grid is represented by a Structure's row.
- A row refers to an item. An item is an abstraction for everything that can be placed into a forest – issues, folders, projects, users are all items, from Structure's perspective.
- An item has item identity – something that uniquely identifies that item on a JIRA instance.
- An item also has attributes – some values with associated meaning, which Structure and its extensions can provide and that can be shown to the user.
A Note on Extensibility
Structure is built with extensibility in mind. It is possible for a separate add-on to add new item types, attributes, columns and other extensible elements to Structure, at runtime.