Interface BackupOverviewBuilder

All Known Implementing Classes:
BackupOverviewBuilderImpl

public interface BackupOverviewBuilder
This is the intermediate object that collects information from the SAX parser and is able to produce a BackupOverview.
This object is used to build up data gleaned from an XML backup. This contains the JIRA information (build number, edition, plugins, etc.) and all the project information (components, versions, etc.) about the data stored in an XML backup.
NOTE: This object only collates all its project data when the getBackupOverview() method is called. This object is not meant to be used as a transfer object, instead it is an incrementally populated builder.
Since:
v3.13
  • Method Details

    • getBackupOverview

      BackupOverview getBackupOverview()
      Returns a BackupOverview that is populated by the current state of the builder.
      Returns:
      backupOverview that contains the BackupProject's and JIRA system information that has been registered with the builder.
    • addProject

      @Internal void addProject(ExternalProject project)
      Allows you to add a reference to an ExternalProject.
      Parameters:
      project - the project to add.
    • addPluginVersion

      @Internal void addPluginVersion(PluginVersion pluginVersion)
      Allows you to add a reference to a PluginVersion.
      Parameters:
      pluginVersion - the plugin version to add.
    • addVersion

      @Internal void addVersion(ExternalVersion version)
      Allows you to add a reference to an ExternalVersion.
      Parameters:
      version - the version information to associate with the project.
    • addComponent

      @Internal void addComponent(ExternalComponent component)
      Allows you to add a reference to an ExternalComponent.
      Parameters:
      component - the component information to associate with the project.
    • addIssue

      @Internal void addIssue(ExternalIssue issue)
      Allows you to register an issue against a project. The issue id's are made available via the BackupProject.getIssueIds() method.
      Parameters:
      issue - which has its id and project set. We should be able to convert the issue id to a long.
    • addComment

      @Internal void addComment(ExternalComment comment)
      Allows you to register a comment against a project. Only comment length is stored and not the comment body. Later it's used to find the longest of system text fields (description, environment, comment) in a project.
      Parameters:
      comment - which has its id and issue set.
    • setBuildNumber

      @Internal void setBuildNumber(String buildNumber)
      Registers the JIRA build number with this object.
      Parameters:
      buildNumber - the build number as contained in the JIRA backup.
    • setEdition

      @Internal void setEdition(String edition)
      Registers the JIRA edition with this object.
      Parameters:
      edition - the edition as contained in the JIRA backup.
    • setUnassignedIssuesAllowed

      @Internal void setUnassignedIssuesAllowed(boolean unassignedIssuesAllowed)
      Registers the value of the "UnassignedIssuesAllowed" setting.
      Parameters:
      unassignedIssuesAllowed - The value of the "UnassignedIssuesAllowed" setting.
    • addConfigurationContext

      @Internal void addConfigurationContext(BackupOverviewBuilder.ConfigurationContext configuration)
      Registers a portion of a projects custom field configuration so that the builder can collate this with the addFieldConfigSchemeIssueType(FieldConfigSchemeIssueType) and addExternalCustomField(com.atlassian.jira.external.beans.ExternalCustomField) data to produce a project relevant custom field configuration.
      Parameters:
      configuration - is the configuration represented in the backup XML.
    • addFieldConfigSchemeIssueType

      @Internal void addFieldConfigSchemeIssueType(BackupOverviewBuilder.FieldConfigSchemeIssueType fieldConfigSchemeIssueType)
      Registers a portion of a projects custom field configuration so that the builder can collate this with the addConfigurationContext(ConfigurationContext) and addExternalCustomField(com.atlassian.jira.external.beans.ExternalCustomField) data to produce a project relevant custom field configuration.
      Parameters:
      fieldConfigSchemeIssueType - is the linked issue type information represented in the backup XML.
    • addExternalCustomField

      @Internal void addExternalCustomField(ExternalCustomField externalCustomField)
      Registers the custom field information portion of a projects custom field configuration so that the builder can collate this with the addConfigurationContext(ConfigurationContext) and addFieldConfigSchemeIssueType(FieldConfigSchemeIssueType) data to produce a project relevant custom field configuration.
      Parameters:
      externalCustomField - is the custom field information represented in the backup XML.
    • populateInformationFromElement

      void populateInformationFromElement(String elementName, Map attributes) throws ParseException
      Used to handle populating the builder from a SAX parser. This method will delegate the actual handling of the element and attributes to an instance of a BackupOverviewPopulator. This will then populate this object with the information it gains from the XML information.
      Parameters:
      elementName - identifies the XML element.
      attributes - identifies the attributes associated with the XML element.
      Throws:
      ParseException - if the attributes are invalid for this element.
    • addAdditionalData

      void addAdditionalData(String key, String projectId, Object data)
      Set additional data into the backup overview that is gathered from plugins.
      Parameters:
      key - A unique key for the plugin.
      projectId - The project the data relates to.
      data - Data to be stored against the key. The data will be added to a list and eventually stored in the and accessible via