com.almworks.jira.structure.api.StructureComponents Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of structure-api Show documentation
Show all versions of structure-api Show documentation
Public API for the Structure Plugin for JIRA
package com.almworks.jira.structure.api;
import com.almworks.jira.structure.api.attribute.StructureAttributeService;
import com.almworks.jira.structure.api.attribute.subscription.AttributeSubscriptionService;
import com.almworks.jira.structure.api.backup.StructureBackupManager;
import com.almworks.jira.structure.api.effector.Effector;
import com.almworks.jira.structure.api.effector.instance.EffectorInstance;
import com.almworks.jira.structure.api.effector.instance.EffectorInstanceManager;
import com.almworks.jira.structure.api.effector.process.EffectorProcessManager;
import com.almworks.jira.structure.api.event.IssueEventBridge;
import com.almworks.jira.structure.api.folder.FolderManager;
import com.almworks.jira.structure.api.forest.*;
import com.almworks.jira.structure.api.generator.GeneratorManager;
import com.almworks.jira.structure.api.item.*;
import com.almworks.jira.structure.api.job.ScheduledJobManager;
import com.almworks.jira.structure.api.job.StructureJobManager;
import com.almworks.jira.structure.api.process.ProcessHandleManager;
import com.almworks.jira.structure.api.property.StructurePropertyService;
import com.almworks.jira.structure.api.query.StructureQueryBuilderFactory;
import com.almworks.jira.structure.api.query.StructureQueryParser;
import com.almworks.jira.structure.api.row.RowManager;
import com.almworks.jira.structure.api.settings.StructureConfiguration;
import com.almworks.jira.structure.api.structure.StructureManager;
import com.almworks.jira.structure.api.structure.favorite.StructureFavoriteManager;
import com.almworks.jira.structure.api.sync.StructureSyncManager;
import com.almworks.jira.structure.api.sync.SyncAuditLog;
import com.almworks.jira.structure.api.view.StructureViewManager;
import com.atlassian.annotations.PublicApi;
import org.jetbrains.annotations.NotNull;
/**
*
* StructureComponents is a convenience interface that can be used to retrieve all public services
* of the Structure plugin (except internal and experimental APIs).
* You can also get those services from ComponentAccessor or by declaring them
* in a constructor of your component and have them injected.
*
*
* The convenience is in reducing the number of parameters you declare in the constructor of your
* component.
*
*
* Note that this service returns the original instances of those services, unlike when the proxies for the
* services are injected.
*
*
* This class also provides some frequently-used Atlassian interfaces.
*
*
* @author Igor Sereda
*/
@PublicApi
public interface StructureComponents {
/**
* Returns the component that's used to manage structures.
*/
@NotNull
StructureManager getStructureManager();
/**
* Returns a service that lets you retrieve {@link ForestSource} for a structure or a given {@link ForestSpec}.
*/
@NotNull
ForestService getForestService();
/**
* Returns the service that is used to calculate and get field values and other attributes for items.
*/
@NotNull
StructureAttributeService getAttributeService();
/**
* Returns the service that is used to manage subscriptions to attributes. It's an async way to retrieve attributes.
*/
@NotNull
AttributeSubscriptionService getAttributeSubscriptionService();
/**
* Returns the component that's used to manage Structure add-on configuration.
*/
@NotNull
StructureConfiguration getStructureConfiguration();
/**
* Returns the component that's used to create and update synchronizers.
*/
@NotNull
StructureSyncManager getSyncManager();
/**
* Returns the component that's used to back up and restore Structure data.
*/
@NotNull
StructureBackupManager getBackupManager();
/**
* Returns the component that's used to run asynchronous jobs.
*/
@NotNull
StructureJobManager getJobManager();
/**
* Returns the component that is used to schedule recurring asynchronous jobs.
*/
@NotNull
ScheduledJobManager getScheduledJobManager();
/**
* Returns the component that's used to listen and report issue events.
*/
@NotNull
IssueEventBridge getIssueEventBridge();
/**
* Returns the component that's used to work with Structure views.
*/
@NotNull
StructureViewManager getViewManager();
/**
* Returns the component that's used to access and manage "favorite" relations between users and structures.
*/
@NotNull
StructureFavoriteManager getFavoriteManager();
/**
* Returns the component that is used to create Structure queries by parsing them from a String.
*/
@NotNull
StructureQueryParser getStructureQueryParser();
/**
* Returns the component that is used to create new instances of Structure query builders.
*/
@NotNull
StructureQueryBuilderFactory getStructureQueryBuilderFactory();
/**
* Returns component that tracks long-running background processes and shows progress to the user.
*/
@NotNull
ProcessHandleManager getProcessHandleManager();
/**
* Returns row manager, which is responsible for managing a mapping between numeric row IDs and item IDs.
*/
@NotNull
RowManager getRowManager();
/**
* Returns the component that synchronizers use to store audit information about their execution and actions
* they've taken.
*/
@NotNull
SyncAuditLog getSyncAuditLog();
/**
* Returns the service responsible for storing and retrieving generator instances.
*/
@NotNull
GeneratorManager getGeneratorManager();
/**
* Returns a service that resolves {@link ItemIdentity} into an object that represents that item.
*/
@NotNull
ItemResolver getItemResolver();
/**
* Returns a service responsible for storing and retrieving folders.
*/
@NotNull
FolderManager getFolderManager();
/**
* Returns a service that lets you associate arbitrary properties with a structure.
*/
@NotNull
StructurePropertyService getStructurePropertyService();
/**
* Returns a service that tracks item updates throughout the system and also allows reporting updates.
*/
@NotNull
ItemTracker getItemTracker();
/**
* Returns a service responsible for CRUD operations on persistent {@link EffectorInstance effector instances}
*/
@NotNull
EffectorInstanceManager getEffectorInstanceManager();
/**
* Returns a service that manages {@link Effector} preview, effect application, and undo background processes.
*/
@NotNull
EffectorProcessManager getEffectorProcessManager();
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy