All Classes and Interfaces
Class
Description
Base class for scanning loaders that support standard options "baseLevel" and "levels".
This is the basic implementation of a structure job, that should be extended by the actual job code.
AbstractSynchronizer is an abstract base class for the synchronizers that
 provides basic implementation for some of the StructureSynchronizer methods
 and offers some utility methods for the synchronizers.This is a factory for 
ActionEffect's.The context interface for aggregate attribute loaders.
Aggregate attributes have values calculated up through the hierarchy.
ArbitraryDependenciesAttributeLoaderBuilder<T,S extends ArbitraryDependenciesAttributeLoaderBuilder<T,S>>  
Mutable inheritor of 
Forest class.Defines how the values provided by an attribute loader are cached.
An 
AttributeContext is associated with every attribute request and Structure export request.Allows the attribute loader to declare that the value it produces is calculated using some of the values from the context.
Contains information about problems experienced when loading a particular attribute.
An 
AttributeLoader contains code that loads values for a particular attribute, represented by AttributeSpec.This interface adds methods to 
AttributeContext that are used only by attribute loaders.Attributes extension point - you can add new attributes and attribute implementations to the system by implementing this interface
 and declaring the implementation in 
atlassian-plugin.xml.Provides context for the creation of attribute loaders.
Attribute sensitivity mode defines the default sensitivity of attributes.
Attribute sensitivity settings govern which attributes will be considered sensitive when calculating a multi-row aggregate value (by
 an aggregate, a propagate, or a scanning loader).
AttributeSpec is the "attribute specification", a composite identifier of an attribute.A builder for AttributeSpec.
Provides normalization for attribute spec parameters.
AttributeSubscription represents an interest of the client code in a particular set of attribute values, allowing
 for background loading.Provides methods for changing 
AttributeSubscription parameters.AttributeSubscriptionService manages attribute subscriptions.Used to check if the previously loaded values may have changed.
Represents a value, or lack thereof.
Implementing 
AttributeValuesReceiver and using StructureAttributeService.loadAttributeValues(com.almworks.jira.structure.api.forest.ForestSpec, boolean, com.almworks.integers.LongList, java.util.Collection<? extends com.almworks.jira.structure.api.attribute.AttributeSpec<?>>, com.almworks.jira.structure.api.attribute.AttributeValuesReceiver) methods
 allows for the calling code to get some values while other values are still being loaded, get metadata and cancel the loading process.AutoSwitchStrategy enum defines how the initial structure is selected when the user
 opens issue page or project page.Backup operation allows to set backup parameters and run the backup.
ColumnDisplayMode stores constants representing supported column display modes.Comparable tuple is a tuple consisting of numbers and strings, which is compared on per-component order, starting
 with the first element (most significant), down to the last one.
Utility class that is used to log errors that are likely to happen often.
ConsistentRowValues carries the values loaded in a consistent way, that is, when all the requested data retained their values
 during the loading process.Core app-level permissions checked by Structure.
Produces 
effect descriptions for common effects provided by Structure.This class contains utility methods for checking and creating 
ItemIdentity.This interface lists main item types that come bundled with Structure plugin.
Contains pre-defined semantic codes that are used in Structure.
Provides access to user-defined "dark" features and fine-tuning parameters.
DataVersion is used to identify whether some content has changed and to
 support incremental updates.The context interface for derived attribute loaders.
Derived loaders calculate the attribute value based only on the attribute dependencies.
A piece of runnable code generated by an 
effect
 provider from an effect description.An output sink for an 
effector, where it puts its
 effect descriptions.An effector is a component that generates effect descriptions based on a
 forest, a set of attribute values, and a set of user-provided,
 implementation-specific parameters.
A context object for 
Effector.getEffectorFunction(Map, EffectorContext),
 which allows the effector to require attribute values and inspect the
 forest spec being processed.Produces 
effect descriptions, given an item forest and attribute values.A response object returned by 
Effector.getEffectorFunction(Map, EffectorContext),
 containing either an EffectorFunction or a collection of error
 messages.An invalid effector response with error messages.
A valid effector response.
An effector instance is a persistent entity, containing an 
Effector
 module key and its parameters.Effector instance manager is responsible for CRUD operations on persistent
 
effector instances.EffectorPreview stores the results of an effector run in the "preview" mode.Represents an 
Effector preview, effect application, or undo
 background process started by a user.Represents the status of an effector process.
Manages 
Effector preview, effect application, and undo background
 processes.An exception that an 
Effector is allowed to throw to indicate that
 it is currently unavailable.An effect provider is responsible for converting 
effect
 descriptions to pieces of runnable code.Information about a single effect applied by an effector process.
The result of 
resolving
 an effect description.Represents an empty response, which means that the requested change
 is possible, but not required.
Represents an error response, which means that the requested change
 is impossible.
Represents a valid response, which means that the requested change
 is both needed and possible.
ExcelCell is a specialization of ExportCell for exporting to the Microsoft Excel format, offering
 limited support for Excel-specific styling.ExcelColumn is a specialization of ExportColumn for exporting to the Microsoft Excel format,
 offering limited support for Excel-specific styling.ExcelStyle represents the default cell styles used by Structure's Excel export.ExportCell represents a single cell in the underlying table-like medium (e.g.ExportColumn represents a single column in the underlying table-like medium (e.g.This class contains keys for the 
AttributeContext.getObject(Object) method that can be used to retrieve
 various objects needed to perform advanced tasks.Keys for Excel export requests.
Keys for all export requests.
An enum representing the formats that a structure can be exported into.
A subtype of 
AttributeContext passed to ExportRenderer.An 
ExportRenderer corresponds to a single column of the underlying table-like medium (e.g.ExportRendererProvider processes the export requests for the Structure widget columns.
   A context that is passed to 
ExportRenderer and ExportRendererProvider during preparation
   phase of the export.An 
ExportRow represents a particular item in an exported Forest.Forest interface provides indexed access to a data structure that stores row hierarchy
 (the hierarchy is a sequence of tree structures, a forest).Provides per-row, per-issue caching and functions to verify row/issue visibility to the user
ForestChange represents a single change on a forest.
Represents addition to the forest.
Represents moving one or more rows from their current places in forest under the specified position.
Represents removal of one or more rows.
Represents a complete reorder of the direct children of a given row.
The interface to use when making different actions depending on the specific type of the change.
This interface may be used to collect additional information while forest changes are being made.
ForestIterationControl is an auxiliary object passed to some forest iteration methods for
 control of the iteration over a forest.Implement this interface to efficiently process a forest in a bottom-up style with 
Forest.foldUpwards(com.almworks.jira.structure.api.forest.raw.ForestParentChildrenClosure<T, C>).This is a utility implementation of 
ForestParentChildrenClosure that collects the results
 of processing sub-rows into a list.Used to iterate over a forest - see 
Forest.visitParentChildrenUpwards(com.almworks.jira.structure.api.forest.raw.ForestParentChildrenVisitor).Lets an iteratee under 
Forest.scanDownwards(com.almworks.jira.structure.api.forest.raw.ForestScanner) control the iteration and receive additional information
 about the current position.ForestService manages all structured content.ForestSource is used to retrieve a forest and get forest updates.ForestSpec is used to identify structured content.A builder for forest spec.
Represents a SQuery.
Represents a transformation, which is a call to a generator with specified parameters.
Class responsible for storing data related to generic item.
GenericItemManager is responsible for performing operations with generic items.GenericItemService is responsible for performing get, create, update and delete operations
 with generic items.GenericItemType is responsible for generic items support in Structure plugin.Representing i18n parameters: template key and arguments
This is a temporary object that's passed to a synchronizer and tells what's been changed
 in structure and in JIRA or in the external system.
Forest-based indexes for common operations like getting parents, children, subtree or siblings.
A RowTree with an index from rowId to its 
RowTree.Node.IssueChangeEvent represents an event that has happened with a specific issue.IssueEventBridge is a simple hub that allows to listen to issue changes
 and report issue changes.IssueListener is a simple interface that receives notifications that
 an issue has changed.These values may be used to optimize the access to 
StructureRow, based on whether the client code is going to use the
 StructureRow.getItem(java.lang.Class<I>) method or not, and whether it is important that the current user has access to that item.The context interface for item attribute loaders.
Item loaders calculate attribute value for a particular item, based on 
ItemIdentity.An implementor of this interfaces checks if any of changed items may affect a built forest fragment.
Fat builder - uses memory-hungry but fast RowTree.
ItemIdentity represents an item, a core concept in Structure's architecture.Represents long-based ID.
Represents string-based ID.
An implementation of a 
Set of ItemIdentity, optimized for memory consumption and objects count.ItemTracker service provides means to track and report changes to items.This exception is thrown if the application code expects an Item Type with a specific ID to be present, but it
 isn't registered in the system.
ItemTypeRegistry is an internal service that provides mapping of all known item type keys (module keys)
 to int values (primary keys in a db table).An object that implements 
ItemValues interface is supplied as a result of attributes calculation by
 StructureAttributeService.getItemValues(java.util.Collection<com.almworks.jira.structure.api.item.ItemIdentity>, java.util.Collection<? extends com.almworks.jira.structure.api.attribute.AttributeSpec<?>>).IssueChangeEvent represents the details of a single issue change.A listing of possible types of events.
JiraFunc contains Jira-related functions.Workaround for https://jira.atlassian.com/browse/JRA-62034
Utility methods for working with JSON maps.
La is a utility generic-purpose class for functional expressions.Same principle as 
HistoryConsumer.This event is dispatched when an operation on links is detected - creation of a new link, or removal of existing
 link.
Represents a value loaded from the attribute system.
An interface that allows access to attribute values, loaded via the attribute system.
todo why don't we add this to ArrayForest? We could have a method indexOfCached() which would consult the cache;
 todo | the cache would be invalidated on any forest update; also could be "smart" (invalidate only indices after the point of change)
 todo Or: merge with IndexedForest
A wrapper for a Map-based structure.
Stores mappings from entity ID in the backup file to restored entity ID.
This exception is thrown by 
RowManager if the code requests a non-existent row.A multi-row loader provide a value for a single row, but also considering the previously calculated value of the same
 attribute for some other rows in the forest.
The annotation is used to mark a custom value format as non-sensitive in standard mode.
Helper methods for using numeric functions.
Percentage display style.
This enumeration lists possible values for the access levels.
A list of 
PermissionRules is used to define a PermissionLevel
 for a given user.This rules applies a list of rules taken from a Structure, identified by the structure ID.
This rule sets the permission level to a specific value in case the user matches 
PermissionSubject.PermissionSubject is an abstraction used to specify which users a particular permission
 is applicable to.Represents "anyone", a subject that would match all users, even anonymous.
Represents a specific group in JIRA, matching only the users that belong to that group.
Represents a specific user in JIRA, matching only that user.
Represents a specific project role in a specific project, matching the users that belong to that project role
 in that project.
Used to visit specific subtypes of 
PermissionSubject.Implement to be pinged
PrintableCell is a specialization of ExportCell for exporting to the printable HTML format.PrintableColumn is a specialization of ExportColumn for exporting to the printable HTML format.ProcessFeedback allows communication between process owner and process itself.
ProcessHandle allows accessing process state for reading and for modifications
ProcessHandleManager allows to create new processes and access existing ones
ProcessInfo allows communication between process owner and process itself.
ProcessUIController allows configure UI for the process status page.
A 
ProgressGauge allows you to communicate with a background process.The context interface for propagate attribute loaders.
The context interface for preparing children loading function by a propagate.
Propagate attributes have values calculated down through the hierarchy.
This interface represents the environment of the 
StructureQuery being executed.
 A base class for aggregate loaders that calculate values using only the specified part of subtree.
Describes a part of subtree to be used for calculating aggregate values.
Main value: the aggregation based only on children.
Main value: the aggregation based only on leaves.
Main value: the aggregation based on the whole subtree without self row.
Main value: the aggregation based only on all children.
A simple value holder, used to provide outgoing parameters.
Restore operation reads a backup file and loads it into the Structure database.
The base context interface for all row-based attribute loaders.
Common base interface for all row-based attribute loaders.
RowDisplayMode stores constants representing supported row display modes.RowManager is responsible for maintaining row database and row properties.RowMapper helps track the original row IDs for copied row.RowRetriever is an abstraction of an object that can provide an instance of StructureRow by its numeric ID.RowTree is another representation of the Forest concept.
Represents a single node or a 
RowTree.An object that implements 
RowValues interface is supplied as a result of attributes calculation by
 StructureAttributeService.This class contains row values and the update checker that can be used to see if these row values may have been outdated.
The context interface for scanning attribute loaders.
Scanning attributes are used to process and aggregate values across all the forest, from top to bottom (depth-first traversal).
CoreAttributeSpec contains the attribute specifications and related constants for the well-known attributes.The context interface for single row attribute loaders.
A single row attribute loader provides an attribute value based on a single forest row.
Usable by AttributeSpec and other Specs that have Map parameters.
A description of an effect that can be stored in the database or passed
 over the wire.
Builder class for 
effect descriptions.This interface lets you inspect and change properties of a structure.
App-level permission.
StructureAttributeService provides a unified way to retrieve data for items.
 This class manages the current authentication context assumed when accessing, managing
 and updating Structure entities such as 
Structure or StructureView.The backup manager is responsible for backup and restore of the structure data.
This is an extension point for Structure backup/restore mechanism.
 StructureComponents is a convenience interface that can be used to retrieve all public services
 of the Structure plugin (except internal and experimental APIs).
StructureConfiguration provides access to the configuration parameters of the Structure app.Event indicating a structure has been deleted.
StructureError implementations are wrappers around numeric error codes, which also
 provide the error's category (see StructureErrorCategory) and error name.Auxiliary annotation, which may be used on a collection of 
StructureError instances to specify the
 inclusive range of error codes that is taken by that collection.Defines categories for errors that may be reported by Structure and its extensions.
StructureErrors is a enumeration of all public Structure errors.StructureException can be thrown for different causes that involve Structure plugin.A builder for 
StructureException.StructureFavoriteManager manages "favorite" relations between users and structures.An implementor inserts new items into the containing structure.
With this interface a Structure extension may inform that the plugin adds new features to particular structures.
Register you component in the atlassian-plugin.xml file:
Register you component in the atlassian-plugin.xml file:
Event indicating a structure item has been converted.
StructureJob is a single one-time or repetitive background task,
 run by the StructureJobManager.Simple enumeration of the possible job states
This exception is thrown by the 
StructureJobManager when there's a problem
 with scheduling a job.StructureJobManager allows running and scheduling background jobs.StructureListener allows you to listen to changes to the static content in structures.StructureManager is the main component used to manage structures as entities.StructurePage enum lists all non-admin JIRA pages (page types) that display
 Structure Widget or that are adjusted by Structure Plugin.StructurePluginHelper is a helper component that provides a lot of helpful methods and which is extensively
 used by Structure plugin itself and by Structure extensions.Holds properties associated with the particular structure
StructureProviderException is intended to be used by the code that extends Structure via implementing
 SPI interfaces.A structure query is a condition on rows and their relationships in a 
Forest, such as 
  rows that are children of issues satisfying JQL 'type = Epic' or
  rows at the top level of the forest.StructureQueryBuilder allows you to build a structure query with a 
 fluent interface.This class allows to specify a basic constraint, either on its own, or as the last step of building a 
 
relational constraint.Object of this class contains the state of the builder; you can finish building the query by calling 
StructureQueryBuilder.Head.end(),
 or add more constraints, connecting them with StructureQueryBuilder.and or StructureQueryBuilder.or.This class lets you add 
operator to the relational constraint being built,
 or to combine the already added relation with another one via StructureQueryBuilder.OpStep.or().This class allows you to continue building 
relational constraint by adding another
 relation.This class allows you to either build a 
basic constraint or 
 start building a relational constraint.Object of this class contains the state of the builder inside the currently open parentheses; you can finish
 building the query in the parentheses and return to the main builder by calling 
StructureQueryBuilder.Sub.endsub(), or
 add more constraints inside the parentheses, connecting them with StructureQueryBuilder.and or StructureQueryBuilder.or.Factory for creating new instances of 
StructureQueryBuilder.This is an extension point in the S-JQL, through which you can add custom basic constraints on forest rows to 
 
StructureQuery.Represents the consumer of 
StructureQueryConstraint.Sequence values - i.e., the consumer of matching indices.A base implementation for a constraint that looks at a bunch of rows at a time.
A default implementation of an empty sequence.
Allows to implement a sequence of numbers in a  
 generator-like fashion.
A base implementation for a simple constraint that looks at one row at a time.
Utility methods for 
StructureQueryConstraint implementations.Parses a 
structure query expressed in the Structured JQL language.StructureRow instances represent rows, main building blocks of a forest.StructureRuntimeException, or its subclass, is thrown when a Structure service experiences an unexpected
 error, which is not part of the service's contract.A 
StructureSynchronizer is a pluggable Structure extension that
 allows you to sync structure with any other aspect of issues, be it links, subtasks or anything
 else.This exception is thrown by the 
StructureSyncManager when it cannot perform the requested operation.StructureSyncManager manages the whole synchronization engine.Contains miscellaneous utility methods.
StructureView represents a view - a named collection of parameters (such as grid columns) that are used
 to configure how Structure widget displays a structure.Immutable representation of the 
StructureView properties.A builder class for 
StructureViewBean, this class can be also used as the input
 for StructureView.update(com.almworks.jira.structure.api.view.StructureViewBean.Builder).StructureViewManager is a component that manages Structure views.StructureViewMenuItem is a small helper class that is basically a pair of
 StructureView and a boolean.The super-root is a fictional row that is present in every forest as the parent of all root rows.
This interface is used by synchronizers to log audit information regarding their actions, configuration changes, etc.
Defines two possible directions for the full synchronization.
SyncEvent with its only subclasses, SyncEvent.Structure and SyncEvent.Jira, is
 used to represent to incremental synchronization a single change in JIRA or in Structure.SyncInstance represents an instance of a synchronizer, configured with user-specified parameters
 to act on some structure under some user account.This is a utility class to log messages from 
synchronizer implementations.This class provides total ordering for objects of any type.
Abstract class for defining a set of items (by their 
ItemIdentity).Represents a set of all items.
Used to collect specific types and items stored in the TrailItemSet.
Represents an empty set.
Represents a set with just one item.
Represents a set of all items of one specific type.
Alternate visitor interface for reading out the specific items and types.
Represents a set of several specific items.
Represents a set of all items of several specific types.
Visitor interface for analyzing the set.
Provides access to the user interface settings of the Structure Widget.
This implementation of the 
UISettings can be used to modify the settings with
 StructureConfiguration.setUISettings(com.atlassian.jira.user.ApplicationUser, com.atlassian.jira.project.Project, com.almworks.jira.structure.api.settings.UISettings).A 
StructureSynchronizer that is able to undo synchronizer actions.An implementor of this interface checks for an external change that may affect a built forest fragment.
Represents a map of values, with one value per key.
ValueFormat is used as a part of AttributeSpec to define in what format the value should be
 returned.
 Describes how to combine the current value and values aggregated over the part of the subtree
 (as defined by ReductionStrategy) during aggregate calculation.
ValuesMeta contains additional information about an attribute loading process, executed by calling
 StructureAttributeService.loadAttributeValues(com.almworks.jira.structure.api.forest.ForestSpec, boolean, com.almworks.integers.LongList, java.util.Collection<? extends com.almworks.jira.structure.api.attribute.AttributeSpec<?>>, com.almworks.jira.structure.api.attribute.AttributeValuesReceiver).VersionedDataSource establishes a way for sources of some data to version their content, to allow
 caching and incremental updates.Base class for versioned updates.
Represents an update from 
ForestSource.Represents a full update.
Represents an incremental update.
View settings define a structure's parameters with regards to views - which
 views are associated with the structure and which views are default on which pages.
AssociatedView is a record of a view association within ViewSettings.The builder for 
ViewSettings.AssociatedView record.View settings builder allows to construct instances of 
ViewSettings and serialize them
 into JSON format.ViewSpecification represents the visual configuration of a structure grid.A builder for 
ViewSpecification, also used to serialize view specification into JSON.Represents a single column configuration in the Structure widget.
ViewSpecification.Column.Builder is used to create instances of ViewSpecification.Column,
 and also to convert them to JSON format.