Package hudson.model

Class AbstractItem

    • Field Detail

      • name

        protected transient String name
        Project name.
      • description

        protected volatile String description
        Project description. Can be HTML.
      • displayName

        protected String displayName
      • SKIP_PERMISSION_CHECK

        @Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class)
        public static boolean SKIP_PERMISSION_CHECK
        Escape hatch for StaplerProxy-based access control
    • Constructor Detail

    • Method Detail

      • getName

        @Exported(visibility=999)
        public String getName()
        Description copied from interface: Item
        Gets the name of the item.

        The name must be unique among other Items that belong to the same parent.

        This name is also used for directory name, so it cannot contain any character that's not allowed on the file system.

        Specified by:
        getName in interface Item
        See Also:
        Item.getFullName()
      • getPronoun

        public String getPronoun()
        Get the term used in the UI to represent this kind of Item. Must start with a capital letter.
      • getTaskNoun

        public String getTaskNoun()
        Gets the term used in the UI to represent the kind of Queue.Task associated with this kind of Item. Must start with a capital letter. Defaults to "Build".
        Since:
        2.50
      • getDisplayName

        @Exported
        public String getDisplayName()
        Description copied from interface: Item
        Gets the human readable short name of this item.

        This method should try to return a short concise human readable string that describes this item. The string need not be unique.

        The returned string should not include the display names of ancestor items.

        Specified by:
        getDisplayName in interface Item
        Specified by:
        getDisplayName in interface ModelObject
        Returns:
        The display name of this object, or if it is not set, the name of the object.
      • getDisplayNameOrNull

        @Exported
        public String getDisplayNameOrNull()
        This is intended to be used by the Job configuration pages where we want to return null if the display name is not set.
        Returns:
        The display name of this object or null if the display name is not set
      • setDisplayNameOrNull

        public void setDisplayNameOrNull​(String displayName)
                                  throws IOException
        This method exists so that the Job configuration pages can use getDisplayNameOrNull so that nothing is shown in the display name text box if the display name is not set.
        Throws:
        IOException
      • getRootDir

        public File getRootDir()
        Description copied from interface: PersistenceRoot
        Gets the root directory on the file system that this Item can use freely for storing the configuration data.

        This parameter is given by the ItemGroup when Item is loaded from memory.

        Specified by:
        getRootDir in interface PersistenceRoot
      • getDescription

        @Exported
        public String getDescription()
        Gets the project description HTML.
      • setDescription

        public void setDescription​(String description)
                            throws IOException
        Sets the project description HTML.
        Throws:
        IOException
      • doSetName

        protected void doSetName​(String name)
        Just update name without performing the rename operation, which would involve copying files and etc.
      • doConfirmRename

        @Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class)
        public org.kohsuke.stapler.HttpResponse doConfirmRename​(@QueryParameter
                                                                String newName)
                                                         throws IOException
        Renames this item
        Throws:
        IOException
      • checkRename

        protected void checkRename​(@NonNull
                                   String newName)
                            throws Failure
        Allows subclasses to block renames for domain-specific reasons. Generic validation of the new name (e.g., null checking, checking for illegal characters, and checking that the name is not in use) always happens prior to calling this method.
        Parameters:
        newName - the new name for the item
        Throws:
        Failure - if the rename should be blocked
        Since:
        2.110
        See Also:
        Job.checkRename(java.lang.String)
      • renameTo

        protected void renameTo​(String newName)
                         throws IOException
        Renames this item. Not all the Items need to support this operation, but if you decide to do so, you can use this method.
        Throws:
        IOException
      • getAllJobs

        public abstract Collection<? extends Job> getAllJobs()
        Gets all the jobs that this Item contains as descendants.
        Specified by:
        getAllJobs in interface Item
      • getFullDisplayName

        @Exported
        public final String getFullDisplayName()
        Description copied from interface: Item
        Works like Item.getDisplayName() but return the full path that includes all the display names of the ancestors.
        Specified by:
        getFullDisplayName in interface Item
      • getRelativeDisplayNameFrom

        public String getRelativeDisplayNameFrom​(ItemGroup p)
        Gets the display name of the current item relative to the given group.
        Parameters:
        p - the ItemGroup used as point of reference for the item
        Returns:
        String like "foo ยป bar"
        Since:
        1.515
      • onLoad

        public void onLoad​(ItemGroup<? extends Item> parent,
                           String name)
                    throws IOException
        Called right after when a Item is loaded from disk. This is an opportunity to do a post load processing.
        Specified by:
        onLoad in interface Item
        name - Name of the directory (not a path --- just the name portion) from which the configuration was loaded. This usually becomes the name of this item.
        Throws:
        IOException
      • onCopiedFrom

        public void onCopiedFrom​(Item src)
        When a Item is copied from existing one, the files are first copied on the file system, then it will be loaded, then this method will be invoked to perform any implementation-specific work.
        Specified by:
        onCopiedFrom in interface Item
        Parameters:
        src - Item from which it's copied from. The same type as this. Never null.
      • getUrl

        public final String getUrl()
        Description copied from interface: Item
        Returns the URL of this item relative to the context root of the application.
        Specified by:
        getUrl in interface Item
        Returns:
        URL that ends with '/'.
        See Also:
        for how to implement this.
      • getSearchUrl

        public String getSearchUrl()
        Description copied from interface: SearchItem
        Returns the URL of this item relative to the parent SearchItem.
        Specified by:
        getSearchUrl in interface SearchItem
        Returns:
        URL like "foo" or "foo/bar". The path can end with '/'. The path that starts with '/' will be interpreted as the absolute path (within the context path of Jenkins.)
      • getAbsoluteUrl

        @Exported(visibility=999,
                  name="url")
        public final String getAbsoluteUrl()
        Description copied from interface: Item
        Returns the absolute URL of this item. This relies on the current StaplerRequest to figure out what the host name is, so can be used only during processing client requests.
        Specified by:
        getAbsoluteUrl in interface Item
        Returns:
        absolute URL.
      • getApi

        public final Api getApi()
        Remote API access.
      • getACL

        @NonNull
        public ACL getACL()
        Returns the ACL for this object.
        Specified by:
        getACL in interface AccessControlled
        Returns:
        never null.
      • getConfigFile

        public final XmlFile getConfigFile()
      • writeReplace

        protected Object writeReplace()
      • doSubmitDescription

        public void doSubmitDescription​(org.kohsuke.stapler.StaplerRequest req,
                                        org.kohsuke.stapler.StaplerResponse rsp)
                                 throws IOException,
                                        javax.servlet.ServletException
        Accepts the new description.
        Throws:
        IOException
        javax.servlet.ServletException
      • doDoDelete

        public void doDoDelete​(org.kohsuke.stapler.StaplerRequest req,
                               org.kohsuke.stapler.StaplerResponse rsp)
                        throws IOException,
                               javax.servlet.ServletException,
                               InterruptedException
        Deletes this item. Note on the funny name: for reasons of historical compatibility, this URL is /doDelete since it predates <l:confirmationLink>. /delete goes to a Jelly page which should now be unused by core but is left in case plugins are still using it.
        Throws:
        IOException
        javax.servlet.ServletException
        InterruptedException
      • delete

        public void delete​(org.kohsuke.stapler.StaplerRequest req,
                           org.kohsuke.stapler.StaplerResponse rsp)
                    throws IOException,
                           javax.servlet.ServletException
        Specified by:
        delete in interface org.kohsuke.stapler.HttpDeletable
        Throws:
        IOException
        javax.servlet.ServletException
      • doConfigDotXml

        @WebMethod(name="config.xml")
        public void doConfigDotXml​(org.kohsuke.stapler.StaplerRequest req,
                                   org.kohsuke.stapler.StaplerResponse rsp)
                            throws IOException
        Accepts config.xml submission, as well as serve it.
        Throws:
        IOException
      • updateByXml

        public void updateByXml​(Source source)
                         throws IOException
        Updates an Item by its XML definition.
        Parameters:
        source - source of the Item's new definition. The source should be either a StreamSource or a SAXSource, other sources may not be handled.
        Throws:
        IOException
        Since:
        1.473
      • doReload

        public void doReload()
                      throws IOException
        Reloads this job from the disk. Exposed through CLI as well. TODO: think about exposing this to UI
        Throws:
        IOException
        Since:
        1.556
      • load

        public void load()
                  throws IOException
        Description copied from interface: Loadable
        Loads the state of this object from disk.
        Specified by:
        load in interface Loadable
        Throws:
        IOException - The state could not be loaded.
      • getTarget

        @Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class)
        public Object getTarget()
        Specified by:
        getTarget in interface org.kohsuke.stapler.StaplerProxy
      • resolveForCLI

        @CLIResolver
        public static AbstractItem resolveForCLI​(String name)
                                          throws org.kohsuke.args4j.CmdLineException
        Used for CLI binding.
        Throws:
        org.kohsuke.args4j.CmdLineException