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
PermissionRule
s 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.