Interface SpincastUtils
- All Known Implementing Classes:
SpincastUtilsDefault
-
Method Summary
Modifier and TypeMethodDescriptionCleans HTML, only allowing basic elements.Cleans HTML, only allowing basic elements.void
clearDirectory
(File dir) Empty a directory if it exists.long[]
convertLongSetToLongPrimitiveArray
(Set<Long> longSet) Convert a string so it can be used in an URL without being escaped: remove accents, spaces, etc.convertToFriendlyToken
(String str, String resultIfEmpty) Convert a string so it can be used in an URL without being escaped: remove accents, spaces, etc.void
copyClasspathDirToFileSystem
(String classpathDirPath, File targetDir) Copy a directory from the classpath (located in a .jar or not) to the specified file system directory.void
copyClasspathFileToFileSystem
(String classpathFilePath, File targetFile) Copy a file from the classpath (located in a .jar or not) to the specified file system file.Creates a randomly named temp file path in the temporary writable directory.<T extends Enum<?>>
TenumValueOfInsensitive
(Class<T> enumClass, String str) Perform a case insensitivevalueOf(value)
search on an enum.If the project is running from an executable .jar file, this will return the directory containing this .jar file.If the project is not running from an executable .jar file, this will return the root directory of the project on the file system.The current cache buster to use.getClassLocationDirOrJarFile
(Class<?> clazz) The location of the specified class.getClasspathInputStream
(String classpathPath) Gets theInputStream
from a resource on the classpath.getLocaleBestMatchFromAcceptLanguageHeader
(String acceptLanguageHeader) Gets the best Locale to use given a "Accept-Language" HTTP header.getMimeTypeFromExtension
(String extension) Gets themime type
from the extension.getMimeTypeFromMultipleSources
(String responseContentTypeHeader, String resourcePath, String requestPath) Gets themime type
using multiple sources of information.getMimeTypeFromPath
(String path) Gets themime type
from a path, using its extension.getParametersFromQuerystring
(String querystring, boolean decodeQueryStringFirst) Parses a querystring (starting with a "?" or not) and returns the list of parameters.Return the querystring of an URL, without leading "?".Parses an URL and returns the list of its querystring parameters, if any.<T> T
getRandomElement
(Set<T> set) Returns a random element from the set ornull
if the set is null or empty.Gets the current Spincast version.inQuotesStringFormat
(String str, boolean singleQuotes) Format a String so it can be outputed in a HTML page, as a one line javascript string or the attribute of an HTML element.boolean
isClassLoadedFromJar
(Class<?> clazz) Was the specified Class loaded from a .jar file?boolean
isClasspathResourceLoadedFromJar
(String resourcePath) Is the classpath resource in a .jar file? Otherwise it is on the file system.boolean
Validate if a String contains characters below 31 or DEL (127).boolean
isContentTypeToSkipGziping
(String contentType) Should the specifiedContent-Type
be gzipped?boolean
isPortOpen
(String host, int port) Validate if a port is open and connectable.boolean
isRequestedResourceNameEndsWithBeforeExtension
(String resourceBaseName, String suffix) Returnstrue
if the name of the requested resource ends with the specified suffix.boolean
isRequestedResourceNameEndsWithBeforeExtension
(URI currentURI, String suffix) Returnstrue
if the name of the requested resource ends with the specified suffix.boolean
Is the current code running from an executable .jar? An executable .jar is a jar withMain-Class
in itsMETA-INF/MANIFEST.MF
.readClasspathFile
(String path) Reads a file on the classpath and returns it as a String.readClasspathFile
(String path, String encoding) Reads a file on the classpath and returns it as a String.removeCacheBusterCodes
(String text) Removes the cache buster code occurences from the given text.<K,
V> LinkedHashMap<K, V> sortMapByValues
(Map<K, V> map) Sort a Map by valuevoid
zipDirectory
(File directoryToZip, File targetZipFile, boolean includeDirItself) Zips a directory.void
zipExtract
(File zipFile, File targetDir) Extracts a .zip file to the specified directory.
-
Method Details
-
zipDirectory
Zips a directory.- Parameters:
targetZipFile
- the target .zip file. If the parent directories don't exist, tries to create them.If
-true
, the directory itself will be included in the zip file, otherwise only its content will be.
-
zipExtract
Extracts a .zip file to the specified directory.- Parameters:
targetDir
- The target directory. If it doesn't exist, tried to create it (and its parents, if required).
-
getMimeTypeFromMultipleSources
String getMimeTypeFromMultipleSources(String responseContentTypeHeader, String resourcePath, String requestPath) Gets themime type
using multiple sources of information.- Parameters:
contentTypeHeader
- an already existing Content-Type header on the response. Can be null.resourcePath
- the path (absolute or relative) to the target resource. Can be null.requestPath
- the path of the current request. Can be null.- Returns:
- the
mime type
ornull
if it can't be decided.
-
getMimeTypeFromPath
Gets themime type
from a path, using its extension.- Returns:
- the
mime type
ornull
if it can't be decided.
-
getMimeTypeFromExtension
Gets themime type
from the extension.- Returns:
- the
mime type
ornull
if it can't be decided.
-
getLocaleBestMatchFromAcceptLanguageHeader
Gets the best Locale to use given a "Accept-Language" HTTP header.- Returns:
- the best Locale to use or
null
if the given header can't be parsed.
-
isContentTypeToSkipGziping
Should the specifiedContent-Type
be gzipped? -
isClasspathResourceLoadedFromJar
Is the classpath resource in a .jar file? Otherwise it is on the file system.- Throws:
an
- exception if the resource doesn't exist.
-
isClassLoadedFromJar
Was the specified Class loaded from a .jar file? -
getClassLocationDirOrJarFile
The location of the specified class.This will be a directory if the class was loaded from the file system as a standalone
.class
file or a .jar file if the class was loaded from a jar.You can use
isClassLoadedFromJar(Class)
to know if the class was loaded from a .jar file or not. -
isRunningFromExecutableJar
boolean isRunningFromExecutableJar()Is the current code running from an executable .jar? An executable .jar is a jar withMain-Class
in itsMETA-INF/MANIFEST.MF
. -
getAppJarDirectory
File getAppJarDirectory()If the project is running from an executable .jar file, this will return the directory containing this .jar file.- Returns:
- the directory path or
null
if the application is not running from an executable .jar file.
-
getAppRootDirectoryNoJar
File getAppRootDirectoryNoJar()If the project is not running from an executable .jar file, this will return the root directory of the project on the file system.- Returns:
- the directory path or
null
if the application is running from an executable .jar file.
-
getSpincastCurrentVersion
String getSpincastCurrentVersion()Gets the current Spincast version. -
getCacheBusterCode
String getCacheBusterCode()The current cache buster to use.This should probably change each time the application is restarted or at least redeployed.
It should also be in such a format that it's possible to remove it from a given text.
This must be kept in sync with
removeCacheBusterCode
! -
removeCacheBusterCodes
Removes the cache buster code occurences from the given text.Note that this won't simply remove the current cache busting code, it will remove any valid cache busting code... This is what we want since we don't want a client sending a request containing an old cache busting code to break!
This must be kept in sync with
getCacheBusterCode
! -
readClasspathFile
Reads a file on the classpath and returns it as a String.Paths are always considered from the root at the classpath. You can start the path with a "/" or not, it makes no difference.
Uses the UTF-8 encoding.
- Returns:
- the content of the file or
null
if not found.
-
readClasspathFile
Reads a file on the classpath and returns it as a String.Paths are always considered from the root at the classpath. You can start the path with a "/" or not, it makes no difference.
- Returns:
- the content of the file or
null
if not found.
-
getClasspathInputStream
Gets theInputStream
from a resource on the classpath.IMPORTANT : the code is responsible to close the inputstream!
Also note that when an application is running from an executable .jar, you must use this instead of trying to get a
File
from the resource!- Returns:
- the
InputStream
ornull
if the resource is not found.
-
copyClasspathFileToFileSystem
Copy a file from the classpath (located in a .jar or not) to the specified file system file.If the target file already exists, if will be overwritten.
-
copyClasspathDirToFileSystem
Copy a directory from the classpath (located in a .jar or not) to the specified file system directory.If the target directory already exists, if will be overwritten.
-
isContainsSpecialCharacters
Validate if a String contains characters below 31 or DEL (127).- Returns:
true
if the String contains characters below 31 (or DEL (127). If the String isnull
,false
is returned.
-
inQuotesStringFormat
Format a String so it can be outputed in a HTML page, as a one line javascript string or the attribute of an HTML element.- Parameters:
singleQuotes
- iffalse
, double quotes are expected as the string delimiter.
-
enumValueOfInsensitive
Perform a case insensitivevalueOf(value)
search on an enum. -
convertLongSetToLongPrimitiveArray
-
createTempFilePath
String createTempFilePath()Creates a randomly named temp file path in the temporary writable directory. -
basicHtml
Cleans HTML, only allowing basic elements.Elements from https://jsoup.org/apidocs/org/jsoup/safety/Whitelist.html#basic-- are allowed + "center" tags. Relative paths are allowed in links.
Images tags are not allowed.
-
basicHtml
Cleans HTML, only allowing basic elements.Elements from https://jsoup.org/apidocs/org/jsoup/safety/Whitelist.html#basic-- are allowed + "center" tags. Relative paths are allowed in links.
- Parameters:
allowImages
- iftrue
image tags will also be allowed.
-
getRandomElement
Returns a random element from the set ornull
if the set is null or empty. -
getQuerystringFromUrl
Return the querystring of an URL, without leading "?". Returns an empty string if there is no querystring.The querystring returned is NOT decoded using
URLDecoder.decode
). -
getQuerystringParametersFromUrl
Parses an URL and returns the list of its querystring parameters, if any.The querystring will be decoded using (using
URLDecoder.decode
). -
getParametersFromQuerystring
Map<String,List<String>> getParametersFromQuerystring(String querystring, boolean decodeQueryStringFirst) Parses a querystring (starting with a "?" or not) and returns the list of parameters.- Parameters:
decodeQueryStringFirst
- iftrue
, the querystring will be decoded (usingURLDecoder.decode
) prior to being parsed.
-
isRequestedResourceNameEndsWithBeforeExtension
Returnstrue
if the name of the requested resource ends with the specified suffix. The name is the part before the extension, if there is one.Manage the fact that routing may be case sensitive or not.
Note that you should specify a "-" if your suffixe starts with this.
-
isRequestedResourceNameEndsWithBeforeExtension
Returnstrue
if the name of the requested resource ends with the specified suffix. The name is the part before the extension, if there is one.Manage the fact that routing may be case sensitive or not.
Note that you should specify a "-" if your suffixe starts with this.
- Parameters:
resourceBaseName
- the base name of the requested resource, as it would be returned byFilenameUtils.getBaseName(String)
, without the potential extension.
-
convertToFriendlyToken
Convert a string so it can be used in an URL without being escaped: remove accents, spaces, etc.This can be used to create "friendly token" in an SEO optimized URL. It can also be used to create a human friendly file name from a random string.
Be careful if you plan on using the result of this methos as an unique token since many strings may result in the same thing!
- Returns:
- the string with only A-Z, "-" and "_" characters. Or, if
the resulting string is empty, a random
UUID
will be returned.
-
convertToFriendlyToken
Convert a string so it can be used in an URL without being escaped: remove accents, spaces, etc.This can be used to create "friendly token" in an SEO optimized URL. It can also be used to create a human friendly file name from a random string.
Be careful if you plan on using the result of this method as an unique token since many strings may result in the same thing!
- Returns:
- the string with only A-Z, "-" and "_" characters. Or, if
the resulting string is empty, the
resultIfEmpty
param is returned.
-
isPortOpen
Validate if a port is open and connectable. -
clearDirectory
Empty a directory if it exists. -
sortMapByValues
Sort a Map by value
-