Class AbstractItem
- All Implemented Interfaces:
DescriptorByNameOwner,Item,ModelObject,PersistenceRoot,Saveable,SearchableModelObject,SearchItem,AccessControlled,FullyNamed,FullyNamedModelObject,Loadable,ModelObjectWithContextMenu,Named,OnMaster,org.kohsuke.stapler.HttpDeletable,org.kohsuke.stapler.StaplerProxy
- Direct Known Subclasses:
AbstractTopLevelItem,Job
Item.- Author:
- Kohsuke Kawaguchi
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.kohsuke.stapler.HttpDeletable
org.kohsuke.stapler.HttpDeletable.HttpDeletableDispatcherNested classes/interfaces inherited from interface jenkins.model.ModelObjectWithContextMenu
ModelObjectWithContextMenu.ContextMenu, ModelObjectWithContextMenu.ContextMenuVisibility, ModelObjectWithContextMenu.MenuItem, ModelObjectWithContextMenu.MenuItemType -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected StringProject description.protected Stringprotected StringProject name.static final AlternativeUiTextProvider.Message<AbstractItem> Replaceable pronoun of that points to a job.static booleanEscape hatch for StaplerProxy-based access controlstatic final AlternativeUiTextProvider.Message<AbstractItem> Replaceable noun for describing the kind of task that this item represents. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcheckRename(String newName) Allows subclasses to block renames for domain-specific reasons.voiddelete()Deletes this item.voiddelete(org.kohsuke.stapler.StaplerRequest2 req, org.kohsuke.stapler.StaplerResponse2 rsp) voiddelete(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) Deprecated.doCheckNewName(String newName) Called bydoConfirmRename(java.lang.String)andrename.jellyto validate renames.voiddoConfigDotXml(org.kohsuke.stapler.StaplerRequest2 req, org.kohsuke.stapler.StaplerResponse2 rsp) Acceptsconfig.xmlsubmission, as well as serve it.voiddoConfigDotXml(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) Deprecated.org.kohsuke.stapler.HttpResponsedoConfirmRename(String newName) Renames this itemvoiddoDoDelete(org.kohsuke.stapler.StaplerRequest2 req, org.kohsuke.stapler.StaplerResponse2 rsp) Deletes this item.voiddoDoDelete(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) Deprecated.voiddoReload()Reloads this job from the disk.protected voidJust updatenamewithout performing the rename operation, which would involve copying files and etc.voiddoSubmitDescription(org.kohsuke.stapler.StaplerRequest2 req, org.kohsuke.stapler.StaplerResponse2 rsp) Accepts the new description.voiddoSubmitDescription(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) Deprecated.final StringReturns the absolute URL of this item.getACL()Returns theACLfor this object.abstract Collection<? extends Job> Gets all the jobs that thisItemcontains as descendants.final ApigetApi()Remote API access.final XmlFileGets the project description HTML.Gets the human readable short name of this item.This is intended to be used by the Job configuration pages where we want to return null if the display name is not set.final StringWorks likeModelObject.getDisplayName()but return the full path that includes all the display names of the ancestors in an unspecified format.final StringGets the full name of this item, like "abc/def/ghi".getName()Gets the name of the item.This bridge method is to maintain binary compatibility withItem.getParent().Get the term used in the UI to represent this kind ofItem.Gets the display name of the current item relative to the given group.This method only exists to disambiguateItem.getRelativeNameFrom(ItemGroup)andItem.getRelativeNameFrom(Item)Gets the root directory on the file system that thisItemcan use freely for storing the configuration data.Default implementation that returns the display name.Returns the URL of this item relative to the parentSearchItem.Returns the URL of this item relative to the parentItemGroup.Gets the term used in the UI to represent the kind ofQueue.Taskassociated with this kind ofItem.final StringgetUrl()Returns the URL of this item relative to the context root of the application.booleanControls whether the default rename action is available for this item.voidload()Loads the state of this object from disk.voidmovedTo(DirectlyModifiableTopLevelItemGroup destination, AbstractItem newItem, File destDir) Notify this item it's been moved to another location, replaced by newItem (might be the same object, but not guaranteed).voidonCopiedFrom(Item src) When aItemis 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.voidCalled right after when aItemis loaded from disk.protected voidDoes the real job of deleting the item.protected voidRenames this item.static AbstractItemresolveForCLI(String name) Used for CLI binding.voidsave()Save the settings to a file.voidsetDescription(String description) Sets the project description HTML.voidsetDisplayName(String displayName) voidsetDisplayNameOrNull(String displayName) 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.toString()voidupdateByXml(Source source) Updates an Item by its XML definition.voidupdateByXml(StreamSource source) Deprecated.as of 1.473 UseupdateByXml(Source)voidWritesconfig.xmlto the specified output stream.protected ObjectMethods inherited from class hudson.model.Actionable
addAction, addOrReplaceAction, doContextMenu, doContextMenu, getAction, getAction, getActions, getActions, getAllActions, getDynamic, getDynamic, removeAction, removeActions, replaceAction, replaceActionsMethods inherited from class hudson.model.AbstractModelObject
getSearch, getSearchIndex, makeSearchIndex, requirePOST, sendError, sendError, sendError, sendError, sendError, sendError, sendError, sendErrorMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface hudson.security.AccessControlled
checkAnyPermission, checkPermission, hasAnyPermission, hasPermission, hasPermission, hasPermission2Methods inherited from interface hudson.model.DescriptorByNameOwner
getDescriptorByNameMethods inherited from interface hudson.model.Item
getRelativeNameFrom, getRelativeNameFrom, getSearchGroup, onCreatedFromScratchMethods inherited from interface hudson.search.SearchableModelObject
getSearchMethods inherited from interface hudson.search.SearchItem
getSearchIcon, getSearchIndex
-
Field Details
-
name
Project name. -
description
Project description. Can be HTML. -
displayName
-
SKIP_PERMISSION_CHECK
@Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) public static boolean SKIP_PERMISSION_CHECKEscape hatch for StaplerProxy-based access control -
PRONOUN
Replaceable pronoun of that points to a job. Defaults to "Job"/"Project" depending on the context. -
TASK_NOUN
Replaceable noun for describing the kind of task that this item represents. Defaults to "Build".
-
-
Constructor Details
-
AbstractItem
-
-
Method Details
-
getName
Description copied from interface:ItemGets 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.
-
getPronoun
Get the term used in the UI to represent this kind ofItem. Must start with a capital letter. -
getTaskNoun
Gets the term used in the UI to represent the kind ofQueue.Taskassociated with this kind ofItem. Must start with a capital letter. Defaults to "Build".- Since:
- 2.50
-
getDisplayName
Description copied from interface:ItemGets 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:
getDisplayNamein interfaceItem- Specified by:
getDisplayNamein interfaceModelObject- Returns:
- The display name of this object, or if it is not set, the name of the object.
-
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
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
-
setDisplayName
- Throws:
IOException
-
getRootDir
Description copied from interface:PersistenceRootGets the root directory on the file system that thisItemcan use freely for storing the configuration data.This parameter is given by the
ItemGroupwhenItemis loaded from memory.- Specified by:
getRootDirin interfacePersistenceRoot
-
getParent
This bridge method is to maintain binary compatibility withItem.getParent(). -
getDescription
Gets the project description HTML. -
setDescription
Sets the project description HTML.- Throws:
IOException
-
doSetName
Just updatenamewithout performing the rename operation, which would involve copying files and etc. -
isNameEditable
public boolean isNameEditable()Controls whether the default rename action is available for this item.- Returns:
- whether
namecan be modified by a user - Since:
- 2.110
- See Also:
-
doConfirmRename
@Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) public org.kohsuke.stapler.HttpResponse doConfirmRename(@QueryParameter String newName) throws IOException Renames this item- Throws:
IOException
-
doCheckNewName
@Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) @NonNull public FormValidation doCheckNewName(@QueryParameter String newName) Called bydoConfirmRename(java.lang.String)andrename.jellyto validate renames.- Returns:
FormValidation.ok(java.lang.String)if this item can be renamed as specified, otherwiseFormValidation.error(java.lang.String)with a message explaining the problem.
-
checkRename
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:
-
renameTo
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
-
movedTo
public void movedTo(DirectlyModifiableTopLevelItemGroup destination, AbstractItem newItem, File destDir) throws IOException Notify this item it's been moved to another location, replaced by newItem (might be the same object, but not guaranteed). This method is executed after the item root directory has been moved to it's new location.Derived classes can override this method to add some specific behavior on move, but have to call parent method so the item is actually setup within it's new parent.
- Throws:
IOException- See Also:
-
getAllJobs
Gets all the jobs that thisItemcontains as descendants.- Specified by:
getAllJobsin interfaceItem
-
getFullName
Description copied from interface:ItemGets the full name of this item, like "abc/def/ghi".Full name consists of
names ofItems that lead from the rootJenkinsto thisItem, separated by '/'. This is the unique name that identifies thisIteminside the wholeJenkins.- Specified by:
getFullNamein interfaceFullyNamed- Specified by:
getFullNamein interfaceItem- Returns:
- the full name of this object.
- See Also:
-
getFullDisplayName
Description copied from interface:FullyNamedModelObjectWorks likeModelObject.getDisplayName()but return the full path that includes all the display names of the ancestors in an unspecified format.- Specified by:
getFullDisplayNamein interfaceFullyNamedModelObject
-
getRelativeDisplayNameFrom
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
-
getRelativeNameFromGroup
This method only exists to disambiguateItem.getRelativeNameFrom(ItemGroup)andItem.getRelativeNameFrom(Item)- Since:
- 1.512
- See Also:
-
onLoad
Called right after when aItemis loaded from disk. This is an opportunity to do a post load processing.- Specified by:
onLoadin interfaceItem- Parameters:
name- Name of the directory (not a path --- just the name portion) from which the configuration was loaded. This usually becomes thenameof this item.- Throws:
IOException
-
onCopiedFrom
When aItemis 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:
onCopiedFromin interfaceItem- Parameters:
src- Item from which it's copied from. The same type asthis. Never null.
-
getUrl
Description copied from interface:ItemReturns the URL of this item relative to the context root of the application. -
getShortUrl
Description copied from interface:ItemReturns the URL of this item relative to the parentItemGroup.- Specified by:
getShortUrlin interfaceItem- Returns:
- URL that ends with '/'.
- See Also:
-
getSearchUrl
Description copied from interface:SearchItemReturns the URL of this item relative to the parentSearchItem.- Specified by:
getSearchUrlin interfaceSearchItem- 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
Description copied from interface:ItemReturns the absolute URL of this item. This relies on the currentStaplerRequest2to figure out what the host name is, so can be used only during processing client requests.- Specified by:
getAbsoluteUrlin interfaceItem- Returns:
- absolute URL.
-
getApi
Remote API access. -
getACL
Returns theACLfor this object.- Specified by:
getACLin interfaceAccessControlled- Returns:
- never null.
-
save
Save the settings to a file.- Specified by:
savein interfaceItem- Specified by:
savein interfaceSaveable- Throws:
IOException- if the persistence failed.
-
getConfigFile
-
writeReplace
-
doSubmitDescription
public void doSubmitDescription(org.kohsuke.stapler.StaplerRequest2 req, org.kohsuke.stapler.StaplerResponse2 rsp) throws IOException, jakarta.servlet.ServletException Accepts the new description.- Throws:
IOExceptionjakarta.servlet.ServletException- Since:
- 2.475
-
doSubmitDescription
@Deprecated @StaplerNotDispatchable public void doSubmitDescription(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) throws IOException, javax.servlet.ServletException Deprecated.- Throws:
IOExceptionjavax.servlet.ServletException
-
doDoDelete
public void doDoDelete(org.kohsuke.stapler.StaplerRequest2 req, org.kohsuke.stapler.StaplerResponse2 rsp) throws IOException, jakarta.servlet.ServletException, InterruptedException Deletes this item. Note on the funny name: for reasons of historical compatibility, this URL is/doDeletesince it predates<l:confirmationLink>./deletegoes to a Jelly page which should now be unused by core but is left in case plugins are still using it.- Throws:
IOExceptionjakarta.servlet.ServletExceptionInterruptedException- Since:
- 2.475
-
doDoDelete
@Deprecated @StaplerNotDispatchable public void doDoDelete(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) throws IOException, javax.servlet.ServletException, InterruptedException Deprecated.- Throws:
IOExceptionjavax.servlet.ServletExceptionInterruptedException
-
delete
public void delete(org.kohsuke.stapler.StaplerRequest2 req, org.kohsuke.stapler.StaplerResponse2 rsp) throws IOException, jakarta.servlet.ServletException - Specified by:
deletein interfaceorg.kohsuke.stapler.HttpDeletable- Throws:
IOExceptionjakarta.servlet.ServletException- Since:
- 2.475
-
delete
@Deprecated public void delete(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) throws IOException, javax.servlet.ServletException Deprecated.- Specified by:
deletein interfaceorg.kohsuke.stapler.HttpDeletable- Throws:
IOExceptionjavax.servlet.ServletException
-
delete
Deletes this item.Any exception indicates the deletion has failed, but
AbortExceptionwould prevent the caller from showing the stack trace.- Specified by:
deletein interfaceItem- Throws:
IOExceptionInterruptedException- See Also:
-
performDelete
Does the real job of deleting the item.- Throws:
IOExceptionInterruptedException
-
doConfigDotXml
@WebMethod(name="config.xml") public void doConfigDotXml(org.kohsuke.stapler.StaplerRequest2 req, org.kohsuke.stapler.StaplerResponse2 rsp) throws IOException Acceptsconfig.xmlsubmission, as well as serve it.- Throws:
IOException- Since:
- 2.475
-
doConfigDotXml
@Deprecated @StaplerNotDispatchable public void doConfigDotXml(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp) throws IOException Deprecated.- Throws:
IOException
-
writeConfigDotXml
@Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) public void writeConfigDotXml(OutputStream os) throws IOException Writesconfig.xmlto the specified output stream. The user must have at leastItem.EXTENDED_READ. If he lacksItem.CONFIGURE, then anySecrets or other sensitive information detected will be masked out.- Throws:
IOException- See Also:
-
updateByXml
Deprecated.as of 1.473 UseupdateByXml(Source)- Throws:
IOException
-
updateByXml
Updates an Item by its XML definition.- Parameters:
source- source of the Item's new definition. The source should be either aStreamSourceor aSAXSource, other sources may not be handled.- Throws:
IOException- Since:
- 1.473
-
doReload
Reloads this job from the disk. Exposed through CLI as well. TODO: think about exposing this to UI- Throws:
IOException- Since:
- 1.556
-
load
Description copied from interface:LoadableLoads the state of this object from disk.- Specified by:
loadin interfaceLoadable- Throws:
IOException- The state could not be loaded.
-
getSearchName
Description copied from class:AbstractModelObjectDefault implementation that returns the display name.- Specified by:
getSearchNamein interfaceSearchItem- Overrides:
getSearchNamein classAbstractModelObject
-
toString
-
getTarget
- Specified by:
getTargetin interfaceorg.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
-
delete(StaplerRequest2, StaplerResponse2)