|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objecthudson.Functions
public class Functions
Utility functions used in views.
An instance of this class is created for each request and made accessible from view pages via the variable 'h' (h stands for Hudson.)
Nested Class Summary | |
---|---|
static class |
Functions.RunUrl
URL decomposed for easier computation of relevant URLs. |
static class |
Functions.ThreadGroupMap
|
Field Summary | |
---|---|
static boolean |
DEBUG_YUI
Set to true if you need to use the debug version of YUI. |
Constructor Summary | |
---|---|
Functions()
|
Method Summary | ||
---|---|---|
static String |
addSuffix(int n,
String singular,
String plural)
Adds the proper suffix. |
|
static void |
adminCheck(org.kohsuke.stapler.StaplerRequest req,
org.kohsuke.stapler.StaplerResponse rsp,
Object required,
Permission permission)
|
|
static String |
appendIfNotNull(String text,
String suffix,
String nullText)
|
|
static String |
appendSpaceIfNotNull(String n)
|
|
static String |
capitalize(String s)
Converts "abc" to "Abc". |
|
static void |
checkPermission(AccessControlled object,
Permission permission)
|
|
static void |
checkPermission(Object object,
Permission permission)
This version is so that the 'checkPermission' on layout.jelly degrades gracefully if "it" is not an AccessControlled object. |
|
static void |
checkPermission(Permission permission)
|
|
static void |
configureAutoRefresh(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
boolean noAutoRefresh)
Used by layout.jelly to control the auto refresh behavior. |
|
static String |
createRenderOnDemandProxy(org.apache.commons.jelly.JellyContext context,
String attributesToCapture)
|
|
static Functions.RunUrl |
decompose(org.kohsuke.stapler.StaplerRequest req)
|
|
static
|
defaulted(T value,
T defaultValue)
If the value exists, return that value. |
|
static boolean |
defaultToTrue(Boolean b)
Can be used to check a checkbox by default. |
|
static int |
determineRows(String s)
Counts the number of rows needed for textarea to fit the content. |
|
static Map<Thread,StackTraceElement[]> |
dumpAllThreads()
|
|
static String |
dumpThreadInfo(ThreadInfo ti,
Functions.ThreadGroupMap map)
|
|
static
|
emptyList()
|
|
static String |
encode(String s)
|
|
static String |
escape(String s)
|
|
static
|
filter(SortedMap<Integer,V> map,
String from,
String to)
Creates a sub map by using the given range (both ends inclusive). |
|
List |
filterDescriptors(Object context,
Iterable descriptors)
|
|
static String |
generateConsoleAnnotationScriptAndStylesheet()
Generate a series of <script> tags to include script.js from ConsoleAnnotatorFactory s and ConsoleAnnotationDescriptor s. |
|
String |
generateId()
Generates an unique ID. |
|
static String |
getActionUrl(String itUrl,
Action action)
Computes the hyperlink to actions, to handle the situation when the Action.getUrlName()
returns absolute URL. |
|
static List<TopLevelItem> |
getAllTopLevelItems(ItemGroup root)
Gets all the TopLevelItem s recursively in the ItemGroup tree. |
|
static List<Descriptor<AuthorizationStrategy>> |
getAuthorizationStrategyDescriptors()
|
|
static String |
getAvatar(User user,
String avatarSize)
Returns an avatar image URL for the specified user and preferred image size |
|
static List<Descriptor<Builder>> |
getBuilderDescriptors(AbstractProject<?,?> project)
|
|
static List<Descriptor<BuildWrapper>> |
getBuildWrapperDescriptors(AbstractProject<?,?> project)
|
|
static List<Descriptor<CaptchaSupport>> |
getCaptchaSupportDescriptors()
|
|
String |
getCheckUrl(String userDefined,
Object descriptor,
String field)
Determines the form validation check URL. |
|
static ArrayList<CLICommand> |
getCLICommands()
|
|
static List<Descriptor<Cloud>> |
getCloudDescriptors()
|
|
static List<Descriptor<ComputerLauncher>> |
getComputerLauncherDescriptors()
|
|
static javax.servlet.http.Cookie |
getCookie(javax.servlet.http.HttpServletRequest req,
String name)
|
|
static String |
getCookie(javax.servlet.http.HttpServletRequest req,
String name,
String defaultValue)
|
|
static String |
getCrumb(org.kohsuke.stapler.StaplerRequest req)
|
|
static List<Descriptor<CrumbIssuer>> |
getCrumbIssuerDescriptors()
|
|
static String |
getCrumbRequestField()
|
|
static String |
getCurrentDescriptorByNameUrl()
|
|
static org.apache.commons.jelly.JellyContext |
getCurrentJellyContext()
When called from within JEXL expression evaluation, this method returns the current JellyContext used
to evaluate the script. |
|
static Locale |
getCurrentLocale()
|
|
static Date |
getCurrentTime()
|
|
static String |
getDiffString(int i)
Prints the integer as a string that represents difference, like "-5", "+/-0", "+3". |
|
static String |
getDiffString2(int i)
getDiffString(int) that doesn't show anything for +/-0 |
|
static String |
getDiffString2(String prefix,
int i,
String suffix)
getDiffString2(int) that puts the result into prefix and suffix
if there's something to print |
|
static Map |
getEnvVars()
|
|
static String |
getFooterURL()
Returns the link to be displayed in the footer of the UI. |
|
static String |
getIconFilePath(Action a)
Computes the path to the icon of the given action from the context path. |
|
static boolean |
getIsUnitTest()
Returns true if we are running unit tests. |
|
JDK.DescriptorImpl |
getJDKDescriptor()
|
|
static List<JobPropertyDescriptor> |
getJobPropertyDescriptors(Class<? extends Job> clazz)
|
|
List<String> |
getLoggerNames()
Work around for bug 6935026. |
|
static List<LogRecord> |
getLogRecords()
|
|
static List<Descriptor<MyViewsTabBar>> |
getMyViewsTabBarDescriptors()
|
|
static String |
getNearestAncestorUrl(org.kohsuke.stapler.StaplerRequest req,
Object it)
Finds the given object in the ancestor list and returns its URL. |
|
static Node.Mode[] |
getNodeModes()
|
|
static List<NodePropertyDescriptor> |
getNodePropertyDescriptors(Class<? extends Node> clazz)
|
|
static List<PageDecorator> |
getPageDecorators()
Gets all the PageDecorator s. |
|
static List<ParameterDefinition.ParameterDescriptor> |
getParameterDescriptors()
|
|
String |
getPasswordValue(Object o)
Used by <f:password/> so that we send an encrypted value to the client. |
|
static String |
getProjectListString(List<Project> projects)
|
|
static List<Descriptor<Publisher>> |
getPublisherDescriptors(AbstractProject<?,?> project)
|
|
static String |
getRelativeDisplayNameFrom(Item p,
ItemGroup g)
Gets the relative display name to the given item from the specified group. |
|
static String |
getRelativeLinkTo(Item p)
Computes the relative path from the current page to the given item. |
|
static List<String> |
getRequestHeaders(String name)
|
|
static String |
getResourcePath()
Resoruce path prefix. |
|
static List<Descriptor<RetentionStrategy<?>>> |
getRetentionStrategyDescriptors()
|
|
static List<SCMDescriptor<?>> |
getSCMDescriptors(AbstractProject<?,?> project)
|
|
static Area |
getScreenResolution()
If we know the user's screen resolution, return it. |
|
static String |
getSearchURL()
Finds the inner-most SearchableModelObject in scope. |
|
static List<Descriptor<SecurityRealm>> |
getSecurityRealmDescriptors()
|
|
String |
getServerName()
Obtains the host name of the Hudson server that clients can use to talk back to. |
|
static Collection<Descriptor> |
getSortedDescriptorsForGlobalConfig()
Like getSortedDescriptorsForGlobalConfig(Predicate) but with a constant truth predicate, to include all descriptors. |
|
static Collection<Descriptor> |
getSortedDescriptorsForGlobalConfig(com.google.common.base.Predicate<GlobalConfigurationCategory> predicate)
Gets all the descriptors sorted by their inheritance tree of Describable
so that descriptors of similar types come nearby. |
|
static Collection<Descriptor> |
getSortedDescriptorsForGlobalConfigNoSecurity()
Deprecated. This is rather meaningless. |
|
static Collection<Descriptor> |
getSortedDescriptorsForGlobalConfigUnclassified()
Like getSortedDescriptorsForGlobalConfig(Predicate) but for unclassified descriptors only. |
|
static Map |
getSystemProperties()
|
|
String |
getSystemProperty(String key)
|
|
static ThreadInfo[] |
getThreadInfos()
|
|
static
|
getTypeParameter(Class<? extends B> c,
Class<B> base,
int n)
Given c=MyList (extends ArrayList<Foo>), base=List , compute the parameterization of 'base'
that's assignable from 'c' (in this case List<Foo> ), and return its n-th type parameter
(n=0 would return Foo ). |
|
String |
getUserAvatar(User user,
String avatarSize)
Deprecated. as of 1.451 Use getAvatar(hudson.model.User, java.lang.String) |
|
static String |
getVersion()
|
|
static String |
getViewResource(Object it,
String path)
|
|
static List<Descriptor<ViewsTabBar>> |
getViewsTabBarDescriptors()
|
|
static String |
getWin32ErrorMessage(IOException e)
|
|
static String |
getYuiSuffix()
Gets the suffix to use for YUI JavaScript. |
|
static boolean |
hasPermission(Object object,
Permission permission)
This version is so that the 'hasPermission' can degrade gracefully if "it" is not an AccessControlled object. |
|
static boolean |
hasPermission(Permission permission)
Returns true if the current user has the given permission. |
|
static boolean |
hasView(Object it,
String path)
|
|
static String |
htmlAttributeEscape(String text)
|
|
static String |
humanReadableByteSize(long size)
Returns human readable information about file size |
|
boolean |
hyperlinkMatchesCurrentPage(String href)
If the given href link is matching the current page, return true. |
|
static Object |
ifThenElse(boolean cond,
Object thenValue,
Object elseValue)
Deprecated. as of 1.294 JEXL now supports the real ternary operator "x?y:z", so this work around is no longer necessary. |
|
static String |
inferHudsonURL(org.kohsuke.stapler.StaplerRequest req)
Infers the hudson installation URL from the given request. |
|
static void |
initPageVariables(org.apache.commons.jelly.JellyContext context)
|
|
static boolean |
isAnonymous()
Checks if the current user is anonymous. |
|
static boolean |
isArtifactsPermissionEnabled()
Returns true if the Run.ARTIFACTS permission is enabled,
false otherwise. |
|
static boolean |
isAutoRefresh(javax.servlet.http.HttpServletRequest request)
|
|
static boolean |
isModel(Object o)
|
|
static boolean |
isModelWithContextMenu(Object o)
|
|
static boolean |
isMultiline(String s)
|
|
static boolean |
isMustangOrAbove()
Are we running on JRE6 or above? |
|
static boolean |
isWindows()
|
|
static boolean |
isWipeOutPermissionEnabled()
Returns true if the Item.WIPEOUT permission is enabled,
false otherwise. |
|
static String |
joinPath(String... components)
Combine path components via '/' while handling leading/trailing '/' to avoid duplicates. |
|
static String |
jsStringEscape(String s)
|
|
static String |
nbspIndent(String size)
One nbsp per 10 pixels in given size, which may be a plain number or "NxN" (like an iconSize). |
|
String |
prepend(String prefix,
String body)
Prepend a prefix only when there's the specified body. |
|
static String |
printLogRecord(LogRecord r)
|
|
static String |
printThrowable(Throwable t)
|
|
static Object |
rawHtml(Object o)
Used for arguments to internationalized expressions to avoid escape |
|
static void |
restoreCurrentDescriptorByNameUrl(String old)
|
|
static String |
rfc822Date(Calendar cal)
|
|
static String |
runScript(org.apache.commons.jelly.Script script)
Evaluate a Jelly script and return output as a String. |
|
static String |
setCurrentDescriptorByNameUrl(String value)
|
|
|
singletonList(T t)
|
|
static int |
size2(Object o)
Works like JSTL build-in size(x) function, but handle null gracefully. |
|
static Functions.ThreadGroupMap |
sortThreadsAndGetGroupMap(ThreadInfo[] list)
|
|
static
|
subList(List<T> base,
int maxSize)
Returns a sub-list if the given list is bigger than the specified 'maxSize' |
|
static String |
toCCStatus(Item i)
Converts the Hudson build status to CruiseControl build status, which is either Success, Failure, Exception, or Unknown. |
|
static String |
toEmailSafeString(String projectName)
Escapes the character unsafe for e-mail address. |
|
static String |
xmlEscape(String s)
|
|
static String |
xmlUnescape(String s)
|
|
static String |
xsDate(Calendar cal)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static boolean DEBUG_YUI
Constructor Detail |
---|
public Functions()
Method Detail |
---|
public String generateId()
public static boolean isModel(Object o)
public static boolean isModelWithContextMenu(Object o)
public static String xsDate(Calendar cal)
public static String rfc822Date(Calendar cal)
public static void initPageVariables(org.apache.commons.jelly.JellyContext context)
public static <B> Class getTypeParameter(Class<? extends B> c, Class<B> base, int n)
c=MyList (extends ArrayList<Foo>), base=List
, compute the parameterization of 'base'
that's assignable from 'c' (in this case List<Foo>
), and return its n-th type parameter
(n=0 would return Foo
).
This method is useful for doing type arithmetic.
AssertionError
- if c' is not parameterized.public JDK.DescriptorImpl getJDKDescriptor()
public static String getDiffString(int i)
public static String getDiffString2(int i)
getDiffString(int)
that doesn't show anything for +/-0
public static String getDiffString2(String prefix, int i, String suffix)
getDiffString2(int)
that puts the result into prefix and suffix
if there's something to print
public static String addSuffix(int n, String singular, String plural)
public static Functions.RunUrl decompose(org.kohsuke.stapler.StaplerRequest req)
public static Area getScreenResolution()
public static Node.Mode[] getNodeModes()
public static String getProjectListString(List<Project> projects)
public static Object ifThenElse(boolean cond, Object thenValue, Object elseValue)
public static String appendIfNotNull(String text, String suffix, String nullText)
public static Map getSystemProperties()
public static Map getEnvVars()
public static boolean isWindows()
public static List<LogRecord> getLogRecords()
public static String printLogRecord(LogRecord r)
public static javax.servlet.http.Cookie getCookie(javax.servlet.http.HttpServletRequest req, String name)
public static String getCookie(javax.servlet.http.HttpServletRequest req, String name, String defaultValue)
public static String getYuiSuffix()
public static <V> SortedMap<Integer,V> filter(SortedMap<Integer,V> map, String from, String to)
public static void configureAutoRefresh(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, boolean noAutoRefresh)
noAutoRefresh
- On certain pages, like a page with forms, will have annoying interference
with auto refresh. On those pages, disable auto-refresh.public static boolean isAutoRefresh(javax.servlet.http.HttpServletRequest request)
public static String getNearestAncestorUrl(org.kohsuke.stapler.StaplerRequest req, Object it)
public static String getSearchURL()
SearchableModelObject
in scope.
public static String appendSpaceIfNotNull(String n)
public static String nbspIndent(String size)
public static String getWin32ErrorMessage(IOException e)
public static boolean isMultiline(String s)
public static String encode(String s)
public static String escape(String s)
public static String xmlEscape(String s)
public static String xmlUnescape(String s)
public static String htmlAttributeEscape(String text)
public static void checkPermission(Permission permission) throws IOException, javax.servlet.ServletException
IOException
javax.servlet.ServletException
public static void checkPermission(AccessControlled object, Permission permission) throws IOException, javax.servlet.ServletException
IOException
javax.servlet.ServletException
public static void checkPermission(Object object, Permission permission) throws IOException, javax.servlet.ServletException
AccessControlled
object.
Otherwise it will perform no check and that problem is hard to notice.
IOException
javax.servlet.ServletException
public static boolean hasPermission(Permission permission) throws IOException, javax.servlet.ServletException
permission
- If null, returns true. This defaulting is convenient in making the use of this method terse.
IOException
javax.servlet.ServletException
public static boolean hasPermission(Object object, Permission permission) throws IOException, javax.servlet.ServletException
AccessControlled
object.
IOException
javax.servlet.ServletException
public static void adminCheck(org.kohsuke.stapler.StaplerRequest req, org.kohsuke.stapler.StaplerResponse rsp, Object required, Permission permission) throws IOException, javax.servlet.ServletException
IOException
javax.servlet.ServletException
public static String inferHudsonURL(org.kohsuke.stapler.StaplerRequest req)
public static String getFooterURL()
public static List<JobPropertyDescriptor> getJobPropertyDescriptors(Class<? extends Job> clazz)
public static List<Descriptor<BuildWrapper>> getBuildWrapperDescriptors(AbstractProject<?,?> project)
public static List<Descriptor<SecurityRealm>> getSecurityRealmDescriptors()
public static List<Descriptor<AuthorizationStrategy>> getAuthorizationStrategyDescriptors()
public static List<Descriptor<Builder>> getBuilderDescriptors(AbstractProject<?,?> project)
public static List<Descriptor<Publisher>> getPublisherDescriptors(AbstractProject<?,?> project)
public static List<SCMDescriptor<?>> getSCMDescriptors(AbstractProject<?,?> project)
public static List<Descriptor<ComputerLauncher>> getComputerLauncherDescriptors()
public static List<Descriptor<RetentionStrategy<?>>> getRetentionStrategyDescriptors()
public static List<ParameterDefinition.ParameterDescriptor> getParameterDescriptors()
public static List<Descriptor<CaptchaSupport>> getCaptchaSupportDescriptors()
public static List<Descriptor<ViewsTabBar>> getViewsTabBarDescriptors()
public static List<Descriptor<MyViewsTabBar>> getMyViewsTabBarDescriptors()
public static List<NodePropertyDescriptor> getNodePropertyDescriptors(Class<? extends Node> clazz)
public static Collection<Descriptor> getSortedDescriptorsForGlobalConfig(com.google.common.base.Predicate<GlobalConfigurationCategory> predicate)
Describable
so that descriptors of similar types come nearby.
We sort them by Extension.ordinal()
but only for GlobalConfiguration
s,
as the value is normally used to compare similar kinds of extensions, and we needed
GlobalConfiguration
s to be able to position themselves in a layer above.
This however creates some asymmetry between regular Descriptor
s and GlobalConfiguration
s.
Perhaps it is better to introduce another annotation element? But then,
extensions shouldn't normally concern themselves about ordering too much, and the only reason
we needed this for GlobalConfiguration
s are for backward compatibility.
predicate
- Filter the descriptors based on GlobalConfigurationCategory
public static Collection<Descriptor> getSortedDescriptorsForGlobalConfig()
getSortedDescriptorsForGlobalConfig(Predicate)
but with a constant truth predicate, to include all descriptors.
@Deprecated public static Collection<Descriptor> getSortedDescriptorsForGlobalConfigNoSecurity()
public static Collection<Descriptor> getSortedDescriptorsForGlobalConfigUnclassified()
getSortedDescriptorsForGlobalConfig(Predicate)
but for unclassified descriptors only.
public static String getIconFilePath(Action a)
public static int size2(Object o) throws Exception
Exception
public static String getRelativeLinkTo(Item p)
public static List<TopLevelItem> getAllTopLevelItems(ItemGroup root)
TopLevelItem
s recursively in the ItemGroup
tree.
public static String getRelativeDisplayNameFrom(Item p, ItemGroup g)
p
- the Item we want the relative display nameg
- the ItemGroup used as point of reference for the item
public static Map<Thread,StackTraceElement[]> dumpAllThreads()
@IgnoreJRERequirement public static ThreadInfo[] getThreadInfos()
public static Functions.ThreadGroupMap sortThreadsAndGetGroupMap(ThreadInfo[] list)
@IgnoreJRERequirement public static boolean isMustangOrAbove()
@IgnoreJRERequirement public static String dumpThreadInfo(ThreadInfo ti, Functions.ThreadGroupMap map)
public static <T> Collection<T> emptyList()
public static String jsStringEscape(String s)
public static String capitalize(String s)
public static String getVersion()
public static String getResourcePath()
public static String getViewResource(Object it, String path)
public static boolean hasView(Object it, String path) throws IOException
IOException
public static boolean defaultToTrue(Boolean b)
h.defaultToTrue(scm.useUpdate)
.
The expression will evaluate to true if scm is null.
public static <T> T defaulted(T value, T defaultValue)
Starting 1.294, JEXL supports the elvis operator "x?:y" that supercedes this.
public static String printThrowable(Throwable t)
public static int determineRows(String s)
public static String toCCStatus(Item i)
public static boolean isAnonymous()
public static org.apache.commons.jelly.JellyContext getCurrentJellyContext()
JellyContext
used
to evaluate the script.
public static String runScript(org.apache.commons.jelly.Script script) throws org.apache.commons.jelly.JellyTagException
org.apache.commons.jelly.JellyTagException
public static <T> List<T> subList(List<T> base, int maxSize)
public static String joinPath(String... components)
public static String getActionUrl(String itUrl, Action action)
Action.getUrlName()
returns absolute URL.
public static String toEmailSafeString(String projectName)
public String getSystemProperty(String key)
public String getServerName()
This is primarily used in slave-agent.jnlp.jelly to specify the destination that the slaves talk to.
public String getCheckUrl(String userDefined, Object descriptor, String field)
public boolean hyperlinkMatchesCurrentPage(String href) throws UnsupportedEncodingException
UnsupportedEncodingException
public <T> List<T> singletonList(T t)
public static List<PageDecorator> getPageDecorators()
PageDecorator
s.
public static List<Descriptor<Cloud>> getCloudDescriptors()
public String prepend(String prefix, String body)
public static List<Descriptor<CrumbIssuer>> getCrumbIssuerDescriptors()
public static String getCrumb(org.kohsuke.stapler.StaplerRequest req)
public static String getCrumbRequestField()
public static Date getCurrentTime()
public static Locale getCurrentLocale()
public static String generateConsoleAnnotationScriptAndStylesheet()
ConsoleAnnotatorFactory
s and ConsoleAnnotationDescriptor
s.
public List<String> getLoggerNames()
public String getPasswordValue(Object o)
public List filterDescriptors(Object context, Iterable descriptors)
public static boolean getIsUnitTest()
public static boolean isArtifactsPermissionEnabled()
true
if the Run.ARTIFACTS
permission is enabled,
false
otherwise.
When the Run.ARTIFACTS
permission is not turned on using the
hudson.security.ArtifactsPermission
system property, this
permission must not be considered to be set to false
for every
user. It must rather be like if the permission doesn't exist at all
(which means that every user has to have an access to the artifacts but
the permission can't be configured in the security screen). Got it?
public static boolean isWipeOutPermissionEnabled()
true
if the Item.WIPEOUT
permission is enabled,
false
otherwise.
The "Wipe Out Workspace" action available on jobs is controlled by the
Item.BUILD
permission. For some specific projects, however, it is
not acceptable to let users have this possibility, even it they can
trigger builds. As such, when enabling the hudson.security.WipeOutPermission
system property, a new "WipeOut" permission will allow to have greater
control on the "Wipe Out Workspace" action.
public static String createRenderOnDemandProxy(org.apache.commons.jelly.JellyContext context, String attributesToCapture)
public static String getCurrentDescriptorByNameUrl()
public static String setCurrentDescriptorByNameUrl(String value)
public static void restoreCurrentDescriptorByNameUrl(String old)
public static List<String> getRequestHeaders(String name)
public static Object rawHtml(Object o)
public static ArrayList<CLICommand> getCLICommands()
public static String getAvatar(User user, String avatarSize)
user
- the useravatarSize
- the preferred size of the avatar image
public String getUserAvatar(User user, String avatarSize)
getAvatar(hudson.model.User, java.lang.String)
public static String humanReadableByteSize(long size)
file
- size in bytes
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |