Class JobConfigHistoryProjectAction

  • All Implemented Interfaces:
    hudson.model.Action, hudson.model.ModelObject

    @ExportedBean(defaultVisibility=-1)
    public class JobConfigHistoryProjectAction
    extends JobConfigHistoryBaseAction
    Author:
    Stefan Brausch
    • Constructor Detail

      • JobConfigHistoryProjectAction

        public JobConfigHistoryProjectAction​(hudson.model.AbstractItem project)
        Parameters:
        project - for which configurations should be returned.
    • Method Detail

      • getIconFileName

        public final String getIconFileName()
        Make method final, as we always want the same icon file. Returns null to hide the icon if the user is not allowed to configure jobs.
      • getJobConfigs

        public final List<ConfigInfo> getJobConfigs​(int from,
                                                    int to)
        Calculates a list containing the .subList(from, to) of the newest-first list of job config revision entries. Does not read the history.xmls unless it is inevitable.
        Parameters:
        from - the first revision to display
        to - the first revision not to display anymore
        Returns:
        a list equivalent to getJobConfigs().subList(from, to), but more efficiently calculated.
      • getJobConfigsREST

        @Exported(name="jobConfigHistory",
                  visibility=1)
        public final List<ConfigInfo> getJobConfigsREST()
                                                 throws IOException
        Returns the configuration history entries for one AbstractItem for the REST API.
        Returns:
        history list for one AbstractItem, or an empty list if not authorized.
        Throws:
        IOException - if JobConfigHistoryConsts.HISTORY_FILE might not be read or the path might not be urlencoded.
      • getFile

        public final String getFile()
                             throws IOException
        Returns getOldConfigXml(String) as String.
        Returns:
        content of the config.xml found in directory given by the request parameter file.
        Throws:
        IOException - if the config file could not be read or converted to an xml string.
      • getProject

        public final hudson.model.AbstractItem getProject()
        Returns the project for which we want to see the config history, the config files or the diff.
        Returns:
        project
      • getAccessControlledObject

        public hudson.security.AccessControlled getAccessControlledObject()
        Returns the object for which we want to provide access control. Returns the project.
        Specified by:
        getAccessControlledObject in class JobConfigHistoryBaseAction
        Returns:
        the access controlled object.
      • hasReadExtensionPermission

        public boolean hasReadExtensionPermission()
      • getTimestamp

        public final String getTimestamp​(int timestampNumber)
        Used in the Difference jelly only. Returns one of the two timestamps that have been passed to the Difference page as parameter. timestampNumber must be 1 or 2.
        Parameters:
        timestampNumber - 1 for timestamp1 and 2 for timestamp2
        Returns:
        the timestamp as String.
      • getUser

        public final String getUser​(int timestampNumber)
        Used in the Difference jelly only. Returns the user that made the change in one of the Files shown in the Difference view(A or B). timestampNumber decides between File A and File B.
        Parameters:
        timestampNumber - 1 for File A and 2 for File B
        Returns:
        the user as String.
      • getUserID

        public final String getUserID​(int timestamp)
      • getChangeReasonComment

        public final String getChangeReasonComment​(int timestamp)
      • hasChangeReasonComment

        public final boolean hasChangeReasonComment​(int timestamp)
      • getOperation

        public final String getOperation​(int timestampNumber)
        Used in the Difference jelly only. Returns the operation made on one of the two Files A and B. timestampNumber decides which file exactly.
        Parameters:
        timestampNumber - 1 for File A, 2 for File B
        Returns:
        the operation as String.
      • getNextTimestamp

        public final String getNextTimestamp​(int timestampNumber)
        Used in the Difference jelly only. Returns the next timestamp of the next entry of the two Files A and B. timestampNumber decides which file exactly.
        Parameters:
        timestampNumber - 1 for File A, 2 for File B
        Returns:
        the timestamp of the next entry as String.
      • getPrevTimestamp

        public final String getPrevTimestamp​(int timestampNumber)
        Used in the Difference jelly only. Returns the previous timestamp of the next entry of the two Files A and B. timestampNumber decides which file exactly.
        Parameters:
        timestampNumber - 1 for File A, 2 for File B
        Returns:
        the timestamp of the previous entry as String.
      • getLines

        public final List<SideBySideView.Line> getLines​(boolean hideVersionDiffs)
                                                 throws IOException
        Takes the two timestamp request parameters and returns the diff between the corresponding config files of this project as a list of single lines. Filters lines that match the ignoredLinesPattern if wanted.
        Specified by:
        getLines in class JobConfigHistoryBaseAction
        Parameters:
        hideVersionDiffs - determines whether version diffs shall be shown or not.
        Returns:
        Differences between two config versions as list of lines.
        Throws:
        IOException - If diff doesn't work or xml files can't be read.
      • doRestore

        public final void doRestore​(org.kohsuke.stapler.StaplerRequest req,
                                    org.kohsuke.stapler.StaplerResponse rsp)
                             throws IOException
        Action when 'restore' button is pressed: Replace current config file by older version.
        Parameters:
        req - Incoming StaplerRequest
        rsp - Outgoing StaplerResponse
        Throws:
        IOException - If something goes wrong
      • doForwardToRestoreQuestion

        public final void doForwardToRestoreQuestion​(org.kohsuke.stapler.StaplerRequest req,
                                                     org.kohsuke.stapler.StaplerResponse rsp)
                                              throws IOException
        Action when 'restore' button in showDiffFiles.jelly is pressed. Gets required parameter and forwards to restoreQuestion.jelly.
        Parameters:
        req - StaplerRequest created by pressing the button
        rsp - Outgoing StaplerResponse
        Throws:
        IOException - If XML file can't be read
      • doDeleteRevision

        public final void doDeleteRevision​(org.kohsuke.stapler.StaplerRequest req,
                                           org.kohsuke.stapler.StaplerResponse rsp)
      • revisionEqualsCurrent

        public boolean revisionEqualsCurrent​(String timestamp)
      • getApi

        public hudson.model.Api getApi()
      • getLeadingWhitespace

        public int getLeadingWhitespace​(String str)