Class Util
- java.lang.Object
-
- com.sun.faces.util.Util
-
public class Util extends Object
Util is a class ... Lifetime And Scope
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classUtil.JakartaNamespaceContext
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidcanSetAppArtifact(ApplicationAssociate applicationAssociate, String artifactName)static voidcheckIdUniqueness(FacesContext context, UIComponent component, Set<String> componentIds)Utility method to validate ID uniqueness for the tree represented bycomponent.static booleanclassHasAnnotations(Class<?> clazz)static <T> Tcoalesce(T... objects)Returns the first non-nullobject of the argument list, ornullif there is no such element.static booleancomponentIsDisabled(UIComponent component)static booleancomponentIsDisabledOrReadonly(UIComponent component)static DocumentBuilderFactorycreateDocumentBuilderFactory()static SAXParserFactorycreateSAXParserFactory()static SchemaFactorycreateSchemaFactory(String uri)static TransformerFactorycreateTransformerFactory()static StringensureLeadingSlash(String s)static intextractFirstNumericSegment(String clientId, char separatorChar)Extract first numeric segment from given client ID.static StringgenerateCreatedBy(FacesContext facesContext)static jakarta.enterprise.inject.spi.BeanManagergetCdiBeanManager(FacesContext facesContext)Get the CDI bean manager.static StringgetClientWindowId(FacesContext context)static StringgetContentTypeFromResponse(Object response)PRECONDITION: argumentresponseis non-null and has a method calledgetContentTypethat takes no arguments and returns a String, with no side-effects.static ClassLoadergetContextClassLoader2()Identify and return the class loader that is associated with the calling web application.static ConvertergetConverterForClass(Class converterClass, FacesContext context)static ConvertergetConverterForIdentifer(String converterId, FacesContext context)static ClassLoadergetCurrentLoader(Object fallbackClass)static DoctypegetDOCTYPEFromFacesContextAttributes(FacesContext context)static StringgetFacesConfigXmlVersion(FacesContext facesContext)Get the faces-config.xml version (if any).static jakarta.servlet.http.HttpServletMappinggetFacesMapping(FacesContext context)Returns the URL pattern of theFacesServletthat is executing the current request.static Optional<jakarta.servlet.ServletRegistration>getFacesServletRegistration(FacesContext context)static FeatureDescriptorgetFeatureDescriptor(String name, String displayName, String desc, boolean expert, boolean hidden, boolean preferred, Object type, Boolean designTime)static jakarta.servlet.http.HttpServletMappinggetFirstWildCardMappingToFacesServlet(ExternalContext externalContext)static longgetLastModified(URL url)static ObjectgetListenerInstance(jakarta.el.ValueExpression type, jakarta.el.ValueExpression binding)Factory method for creating the various Faces listener instances that may be referenced bytypeorbinding.static LocalegetLocaleFromContextOrSystem(FacesContext context)static LocalegetLocaleFromString(String localeStr)static StringgetNamingContainerPrefix(FacesContext context)If view root is instance of naming container, return its container client id, suffixed with separator character.static StringgetStackTraceString(Throwable e)Leverage the Throwable.getStackTrace() method to produce a String version of the stack trace, with a "\n" before each line.static StateManagergetStateManager(FacesContext context)static ClassgetTypeFromString(String type)static jakarta.el.ValueExpressiongetValueExpressionNullSafe(UIComponent component, String name)static ViewHandlergetViewHandler(FacesContext context)static StringgetViewStateId(FacesContext context)static StringgetWebXmlVersion(FacesContext facesContext)Get the web.xml version (if any).static StringgetXMLDECLFromFacesContextAttributes(FacesContext context)static intindexOfSet(String str, char[] set, int fromIndex)static booleanisAllEmpty(Object... values)Returns true if all values are empty, false if at least one value is not empty.static booleanisAllNull(Object... values)static booleanisAnyEmpty(Object... values)Returnstrueif at least one value is empty.static booleanisAnyNull(Object... values)static booleanisEmpty(Object value)Returnstrueif the given value is null or is empty.static booleanisEmpty(Object[] array)Returnstrueif the given array is null or is empty.static booleanisEmpty(String string)Returns true if the given string is null or is empty.static booleanisEmpty(Collection<?> collection)Returnstrueif the given collection is null or is empty.static booleanisNestedInIterator(FacesContext context, UIComponent component)static <T> booleanisOneOf(T object, T... objects)Returnstrueif the given object equals one of the given objects.static booleanisPortletRequest(FacesContext context)Convenience method for determining if the request associated with the specifiedFacesContextis a PortletRequest submitted by the JSR-301 bridge.static booleanisPrefixMapped(String mapping)Returns true if the providedurl-mappingis a prefix path mapping (starts with/).static booleanisResourceExactMappedToFacesServlet(ExternalContext externalContext, String resource)Checks if the FacesServlet is exact mapped to the given resource.static booleanisSpecialAttributeName(String name)static booleanisUnitTestModeEnabled()static booleanisViewIdExactMappedToFacesServlet(String viewId)Checks if the FacesServlet is exact mapped to the given resource.static booleanisViewPopulated(FacesContext ctx, UIViewRoot viewToRender)static ClassloadClass(String name, Object fallbackClass)static Class<?>loadClass2(String name, Object fallbackClass)static <T> TnewInstance(Class<?> clazz)static voidnotNegative(String varname, long number)static voidnotNull(String varname, Object var)static voidnotNullAttribute(String attributeName, Object attribute)static voidnotNullNamedObject(Object object, String objectId, String logMsg)static voidnotNullViewId(String viewId)static StringremoveAllButLastSlashPathSegment(String input)static StringremoveAllButNextToLastSlashPathSegment(String input)static StringremoveLastPathSegment(String input)static <T> List<T>reverse(List<T> list)static voidsaveDOCTYPEToFacesContextAttributes(Doctype doctype)static voidsaveXMLDECLToFacesContextAttributes(String XMLDECL)static voidsetUnitTestModeEnabled(boolean enabled)static voidsetViewPopulated(FacesContext ctx, UIViewRoot viewToRender)Flag the specifiedUIViewRootas populated.static String[]split(jakarta.servlet.ServletContext sc, String toSplit, String regex)static String[]split(Map<String,Object> appMap, String toSplit, String regex)A slightly more efficient version ofString.split()which caches thePatterns in an LRUMap instead of creating a newPatternon each invocation.static String[]split(Map<String,Object> appMap, String toSplit, String regex, int splitLimit)A slightly more efficient version ofString.split()which caches thePatterns in an LRUMap instead of creating a newPatternon each invocation.static booleanstartsWithOneOf(String string, String... prefixes)Returnstrueif the given string starts with one of the given prefixes.static <T> Stream<T>stream(Object object)static <E> Set<E>unmodifiableSet(E... elements)
-
-
-
Method Detail
-
getFacesServletRegistration
public static Optional<jakarta.servlet.ServletRegistration> getFacesServletRegistration(FacesContext context)
-
isPortletRequest
public static boolean isPortletRequest(FacesContext context)
Convenience method for determining if the request associated with the specified
FacesContextis a PortletRequest submitted by the JSR-301 bridge.- Parameters:
context- theFacesContextassociated with the request.
-
generateCreatedBy
public static String generateCreatedBy(FacesContext facesContext)
-
getListenerInstance
public static Object getListenerInstance(jakarta.el.ValueExpression type, jakarta.el.ValueExpression binding)
Factory method for creating the various Faces listener instances that may be referenced by
typeorbinding.If
bindingis notnulland the evaluation result is notnullreturn that instance. Otherwise try to instantiate an instances based ontype.- Parameters:
type- theListenertypebinding- aValueExpressionwhich resolves to aListenerinstance- Returns:
- a
Listenerinstance based off the providedtypeandbinding
-
setUnitTestModeEnabled
public static void setUnitTestModeEnabled(boolean enabled)
-
isUnitTestModeEnabled
public static boolean isUnitTestModeEnabled()
-
createTransformerFactory
public static TransformerFactory createTransformerFactory()
-
createSAXParserFactory
public static SAXParserFactory createSAXParserFactory()
-
createDocumentBuilderFactory
public static DocumentBuilderFactory createDocumentBuilderFactory()
-
createSchemaFactory
public static SchemaFactory createSchemaFactory(String uri)
-
loadClass
public static Class loadClass(String name, Object fallbackClass) throws ClassNotFoundException
- Throws:
ClassNotFoundException
-
newInstance
public static <T> T newInstance(Class<?> clazz)
-
getCurrentLoader
public static ClassLoader getCurrentLoader(Object fallbackClass)
-
getContextClassLoader2
public static ClassLoader getContextClassLoader2() throws FacesException
Identify and return the class loader that is associated with the calling web application.
- Throws:
FacesException- if the web application class loader cannot be identified
-
removeAllButLastSlashPathSegment
public static String removeAllButLastSlashPathSegment(String input)
-
removeAllButNextToLastSlashPathSegment
public static String removeAllButNextToLastSlashPathSegment(String input)
-
notNegative
public static void notNegative(String varname, long number)
-
notNullViewId
public static void notNullViewId(String viewId)
-
notNullNamedObject
public static void notNullNamedObject(Object object, String objectId, String logMsg)
-
canSetAppArtifact
public static void canSetAppArtifact(ApplicationAssociate applicationAssociate, String artifactName)
-
getValueExpressionNullSafe
public static jakarta.el.ValueExpression getValueExpressionNullSafe(UIComponent component, String name)
-
isEmpty
public static boolean isEmpty(String string)
Returns true if the given string is null or is empty.- Parameters:
string- The string to be checked on emptiness.- Returns:
- True if the given string is null or is empty.
-
isEmpty
public static boolean isEmpty(Object[] array)
Returnstrueif the given array is null or is empty.- Parameters:
array- The array to be checked on emptiness.- Returns:
trueif the given array is null or is empty.
-
isEmpty
public static boolean isEmpty(Collection<?> collection)
Returnstrueif the given collection is null or is empty.- Parameters:
collection- The collection to be checked on emptiness.- Returns:
trueif the given collection is null or is empty.
-
isEmpty
public static boolean isEmpty(Object value)
Returnstrueif the given value is null or is empty. Types of String, Collection, Map, Optional and Array are recognized. If none is recognized, then examine the emptiness of the toString() representation instead.- Parameters:
value- The value to be checked on emptiness.- Returns:
trueif the given value is null or is empty.
-
isAllEmpty
public static boolean isAllEmpty(Object... values)
Returns true if all values are empty, false if at least one value is not empty.- Parameters:
values- the values to be checked on emptiness- Returns:
- True if all values are empty, false otherwise
-
isAnyEmpty
public static boolean isAnyEmpty(Object... values)
Returnstrueif at least one value is empty.- Parameters:
values- the values to be checked on emptiness- Returns:
trueif any value is empty andfalseif no values are empty
-
isAllNull
public static boolean isAllNull(Object... values)
-
isAnyNull
public static boolean isAnyNull(Object... values)
-
isOneOf
@SafeVarargs public static <T> boolean isOneOf(T object, T... objects)
Returnstrueif the given object equals one of the given objects.- Type Parameters:
T- The generic object type.- Parameters:
object- The object to be checked if it equals one of the given objects.objects- The argument list of objects to be tested for equality.- Returns:
trueif the given object equals one of the given objects.
-
coalesce
@SafeVarargs public static <T> T coalesce(T... objects)
Returns the first non-nullobject of the argument list, ornullif there is no such element.- Type Parameters:
T- The generic object type.- Parameters:
objects- The argument list of objects to be tested for non-null.- Returns:
- The first non-
nullobject of the argument list, ornullif there is no such element.
-
startsWithOneOf
public static boolean startsWithOneOf(String string, String... prefixes)
Returnstrueif the given string starts with one of the given prefixes.- Parameters:
string- The object to be checked if it starts with one of the given prefixes.prefixes- The argument list of prefixes to be checked- Returns:
trueif the given string starts with one of the given prefixes.
-
getLocaleFromContextOrSystem
public static Locale getLocaleFromContextOrSystem(FacesContext context)
- Parameters:
context- theFacesContextfor the current request- Returns:
- the Locale from the UIViewRoot, the the value of Locale.getDefault()
-
getConverterForClass
public static Converter getConverterForClass(Class converterClass, FacesContext context)
-
getConverterForIdentifer
public static Converter getConverterForIdentifer(String converterId, FacesContext context)
-
getStateManager
public static StateManager getStateManager(FacesContext context) throws FacesException
- Throws:
FacesException
-
getTypeFromString
public static Class getTypeFromString(String type) throws ClassNotFoundException
- Throws:
ClassNotFoundException
-
getViewHandler
public static ViewHandler getViewHandler(FacesContext context) throws FacesException
- Throws:
FacesException
-
componentIsDisabled
public static boolean componentIsDisabled(UIComponent component)
-
componentIsDisabledOrReadonly
public static boolean componentIsDisabledOrReadonly(UIComponent component)
-
getLocaleFromString
public static Locale getLocaleFromString(String localeStr) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
indexOfSet
public static int indexOfSet(String str, char[] set, int fromIndex)
- Parameters:
str- local stringset- the substringfromIndex- starting index- Returns:
- starting at
fromIndex, the index of the first occurrence of any substring fromsetintoSearch, or -1 if no such match is found
-
getStackTraceString
public static String getStackTraceString(Throwable e)
Leverage the Throwable.getStackTrace() method to produce a String version of the stack trace, with a "\n" before each line.
- Parameters:
e- the Throwable to obtain the stacktrace from- Returns:
- the String representation ofthe stack trace obtained by calling getStackTrace() on the passed in exception. If null is passed in, we return the empty String.
-
getContentTypeFromResponse
public static String getContentTypeFromResponse(Object response)
PRECONDITION: argument
responseis non-null and has a method calledgetContentTypethat takes no arguments and returns a String, with no side-effects.This method allows us to get the contentType in both the servlet and portlet cases, without introducing a compile-time dependency on the portlet api.
- Parameters:
response- the current response- Returns:
- the content type of the response
-
getFeatureDescriptor
public static FeatureDescriptor getFeatureDescriptor(String name, String displayName, String desc, boolean expert, boolean hidden, boolean preferred, Object type, Boolean designTime)
-
split
public static String[] split(Map<String,Object> appMap, String toSplit, String regex)
A slightly more efficient version of
String.split()which caches thePatterns in an LRUMap instead of creating a newPatternon each invocation.- Parameters:
appMap- the Application MaptoSplit- the string to splitregex- the regex used for splitting- Returns:
- the result of
Pattern.spit(String, int)
-
split
public static String[] split(Map<String,Object> appMap, String toSplit, String regex, int splitLimit)
A slightly more efficient version of
String.split()which caches thePatterns in an LRUMap instead of creating a newPatternon each invocation. Limited by splitLimit.- Parameters:
appMap- the Application MaptoSplit- the string to splitregex- the regex used for splittingsplitLimit- split result threshold- Returns:
- the result of
Pattern.spit(String, int)
-
split
public static String[] split(jakarta.servlet.ServletContext sc, String toSplit, String regex)
-
getFacesMapping
public static jakarta.servlet.http.HttpServletMapping getFacesMapping(FacesContext context)
Returns the URL pattern of the
If no mapping can be determined, it most likely means that this particular request wasn't dispatched through theFacesServletthat is executing the current request. If there are multiple URL patterns, the value returned byHttpServletRequest.getServletPath()andHttpServletRequest.getPathInfo()is used to determine which mapping to return.FacesServlet.- Parameters:
context- theFacesContextof the current request- Returns:
- the URL pattern of the
FacesServletornullif no mapping can be determined - Throws:
NullPointerException- ifcontextis null
-
isViewIdExactMappedToFacesServlet
public static boolean isViewIdExactMappedToFacesServlet(String viewId)
Checks if the FacesServlet is exact mapped to the given resource.Not to be confused with
isExactMapped(String), which checks if a string representing a mapping, not a resource, is an exact mapping.- Parameters:
viewId- the view id to test- Returns:
- true if the FacesServlet is exact mapped to the given viewId, false otherwise
-
isResourceExactMappedToFacesServlet
public static boolean isResourceExactMappedToFacesServlet(ExternalContext externalContext, String resource)
Checks if the FacesServlet is exact mapped to the given resource.Not to be confused with
isExactMapped(String), which checks if a string representing a mapping, not a resource, is an exact mapping.- Parameters:
externalContext- the external context for this requestresource- the resource to test- Returns:
- true if the FacesServlet is exact mapped to the given resource, false otherwise
-
getFirstWildCardMappingToFacesServlet
public static jakarta.servlet.http.HttpServletMapping getFirstWildCardMappingToFacesServlet(ExternalContext externalContext)
-
isPrefixMapped
public static boolean isPrefixMapped(String mapping)
Returns true if the provided
url-mappingis a prefix path mapping (starts with/).- Parameters:
mapping- aurl-pattern- Returns:
- true if the mapping starts with
/
-
isSpecialAttributeName
public static boolean isSpecialAttributeName(String name)
-
isViewPopulated
public static boolean isViewPopulated(FacesContext ctx, UIViewRoot viewToRender)
- Parameters:
ctx- theFacesContextfor the current requestviewToRender- theUIViewRootto check- Returns:
trueif theFacesContextattributes map contains a reference to theUIViewRoot's view ID
-
setViewPopulated
public static void setViewPopulated(FacesContext ctx, UIViewRoot viewToRender)
Flag the specified
UIViewRootas populated.- Parameters:
ctx- theFacesContextfor the current requestviewToRender- theUIViewRootto mark as populated
-
checkIdUniqueness
public static void checkIdUniqueness(FacesContext context, UIComponent component, Set<String> componentIds)
Utility method to validate ID uniqueness for the tree represented bycomponent.
-
classHasAnnotations
public static boolean classHasAnnotations(Class<?> clazz)
-
getNamingContainerPrefix
public static String getNamingContainerPrefix(FacesContext context)
If view root is instance of naming container, return its container client id, suffixed with separator character.- Parameters:
context- Involved faces context.- Returns:
- The naming container prefix, or an empty string if the view root is not an instance of naming container.
-
getViewStateId
public static String getViewStateId(FacesContext context)
-
getClientWindowId
public static String getClientWindowId(FacesContext context)
-
saveDOCTYPEToFacesContextAttributes
public static void saveDOCTYPEToFacesContextAttributes(Doctype doctype)
-
getDOCTYPEFromFacesContextAttributes
public static Doctype getDOCTYPEFromFacesContextAttributes(FacesContext context)
-
saveXMLDECLToFacesContextAttributes
public static void saveXMLDECLToFacesContextAttributes(String XMLDECL)
-
getXMLDECLFromFacesContextAttributes
public static String getXMLDECLFromFacesContextAttributes(FacesContext context)
-
getLastModified
public static long getLastModified(URL url)
-
getFacesConfigXmlVersion
public static String getFacesConfigXmlVersion(FacesContext facesContext)
Get the faces-config.xml version (if any).- Parameters:
facesContext- the Faces context.- Returns:
- the version found, or "" if none found.
-
getWebXmlVersion
public static String getWebXmlVersion(FacesContext facesContext)
Get the web.xml version (if any).- Parameters:
facesContext- the Faces context.- Returns:
- the version found, or "" if none found.
-
getCdiBeanManager
public static jakarta.enterprise.inject.spi.BeanManager getCdiBeanManager(FacesContext facesContext)
Get the CDI bean manager.- Parameters:
facesContext- the Faces context to consult- Returns:
- the CDI bean manager.
-
unmodifiableSet
@SafeVarargs public static <E> Set<E> unmodifiableSet(E... elements)
-
isNestedInIterator
public static boolean isNestedInIterator(FacesContext context, UIComponent component)
-
extractFirstNumericSegment
public static int extractFirstNumericSegment(String clientId, char separatorChar)
Extract first numeric segment from given client ID.- 'table:1:button' should return 1
- 'table:2' should return 2
- '3:button' should return 3
- '4' should return 4
- Parameters:
clientId- the client IDseparatorChar- the separator character- Returns:
- first numeric segment from given client ID.
- Throws:
NumberFormatException- when given client ID doesn't have any numeric segment at all.
-
-