public interface SpincastUtils
| Modifier and Type | Method and Description |
|---|---|
String |
basicHtml(boolean newlineToBrFirst,
String html)
Cleans HTML, only allowing basic elements.
|
String |
basicHtml(boolean newlineToBrFirst,
String html,
boolean allowImages)
Cleans HTML, only allowing basic elements.
|
long[] |
convertLongSetToLongPrimitiveArray(Set<Long> longSet) |
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.
|
String |
createTempFilePath()
Creates a randomly named temp file path targetting the
writable directory.
|
<T extends Enum<?>> |
enumValueOfInsensitive(Class<T> enumClass,
String str)
Perform a case insensitive
valueOf(value) search on an enum. |
File |
getAppJarDirectory()
If the project is running from an executable
.jar file, this will return the directory containing
this .jar file.
|
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.
|
String |
getCacheBusterCode()
The current cache buster to use.
|
InputStream |
getClasspathInputStream(String classpathPath)
Gets the
InputStream from a resource on the classpath. |
Locale |
getLocaleBestMatchFromAcceptLanguageHeader(String acceptLanguageHeader)
Gets the best Locale to use given a "Accept-Language" HTTP header.
|
String |
getMimeTypeFromExtension(String extension)
Gets the
mime type from the extension. |
String |
getMimeTypeFromMultipleSources(String responseContentTypeHeader,
String resourcePath,
String requestPath)
Gets the
mime type using multiple sources of information. |
String |
getMimeTypeFromPath(String path)
Gets the
mime type from a path, using its extension. |
Map<String,List<String>> |
getParametersFromQuerystring(String querystring,
boolean decodeQueryStringFirst)
Parses a querystring (starting with a "?" or not) and returns
the list of parameters.
|
String |
getQuerystringFromUrl(String url)
Return the querystring of an URL, without
leading "?".
|
Map<String,List<String>> |
getQuerystringParametersFromUrl(String url)
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 or
null if the set is null or empty. |
String |
getSpincastCurrentVersion()
Gets the current Spincast version.
|
String |
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 |
isClasspathResourceInJar(String resourcePath)
Is the classpath resource in a .jar file? Otherwise
it is on the file system.
|
boolean |
isContainsSpecialCharacters(String str)
Valid of a String only contains characters over 31 (or
DEL (127).
|
boolean |
isContentTypeToSkipGziping(String contentType)
Should the specified
Content-Type be gzipped? |
boolean |
isRequestedResourceNameEndsWithBeforeExtension(String resourceBaseName,
String suffix)
Returns
true if the name of the requested
resource ends with the specified suffix. |
boolean |
isRequestedResourceNameEndsWithBeforeExtension(URI currentURI,
String suffix)
Returns
true if the name of the requested
resource ends with the specified suffix. |
boolean |
isRunningFromExecutableJar()
Is the application currently running from
an executable .jar? An executable .jar is a
jar with
Main-Class in its
META-INF/MANIFEST.MF. |
String |
readClasspathFile(String path)
Reads a file on the classpath and returns it as a
String.
|
String |
readClasspathFile(String path,
String encoding)
Reads a file on the classpath and returns it as a
String.
|
String |
removeCacheBusterCodes(String text)
Removes the cache buster code occurences from the
given text.
|
void |
zipDirectory(File directoryToZip,
File targetZipFile,
boolean includeDirItself)
Zips a directory.
|
void |
zipExtract(File zipFile,
File targetDir)
Extracts a .zip file to the specified directory.
|
void zipDirectory(File directoryToZip, File targetZipFile, boolean includeDirItself)
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.void zipExtract(File zipFile, File targetDir)
targetDir - The target directory. If it doesn't exist, tried to
create it (and its parents, if required).String getMimeTypeFromMultipleSources(String responseContentTypeHeader, String resourcePath, String requestPath)
mime type using multiple sources of information.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.mime type or null if it can't be
decided.String getMimeTypeFromPath(String path)
mime type from a path, using its extension.mime type or null if it can't be
decided.String getMimeTypeFromExtension(String extension)
mime type from the extension.mime type or null if it can't be
decided.Locale getLocaleBestMatchFromAcceptLanguageHeader(String acceptLanguageHeader)
null
if the given header can't be parsed.boolean isContentTypeToSkipGziping(String contentType)
Content-Type be gzipped?boolean isRunningFromExecutableJar()
Main-Class in its
META-INF/MANIFEST.MF.File getAppJarDirectory()
null if the
application is not running from an executable .jar
file.boolean isClasspathResourceInJar(String resourcePath)
File getAppRootDirectoryNoJar()
null if the
application is running from an executable .jar
file.String getSpincastCurrentVersion()
String getCacheBusterCode()
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!
String removeCacheBusterCodes(String 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!
String readClasspathFile(String path)
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.
null
if not found.String readClasspathFile(String path, String encoding)
Paths are always considered from the root at the classpath. You can start the path with a "/" or not, it makes no difference.
null
if not found.InputStream getClasspathInputStream(String classpathPath)
InputStream 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!
InputStream or null if the resource is
not found.void copyClasspathFileToFileSystem(String classpathFilePath, File targetFile)
If the target file already exists, if will be overwritten.
void copyClasspathDirToFileSystem(String classpathDirPath, File targetDir)
If the target directory already exists, if will be overwritten.
boolean isContainsSpecialCharacters(String str)
true if the String only contains
characters over 31 (or DEL (127). If the String is
null, true is returned.String inQuotesStringFormat(String str, boolean singleQuotes)
singleQuotes - if false, double quotes are
expected as the string delimiter.<T extends Enum<?>> T enumValueOfInsensitive(Class<T> enumClass, String str)
valueOf(value) search on an enum.String createTempFilePath()
String basicHtml(boolean newlineToBrFirst, String html)
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.
String basicHtml(boolean newlineToBrFirst, String html, boolean allowImages)
Elements from https://jsoup.org/apidocs/org/jsoup/safety/Whitelist.html#basic-- are allowed + "center" tags. Relative paths are allowed in links.
allowImages - if true image tags will also be allowed.<T> T getRandomElement(Set<T> set)
null if the set is null or empty.String getQuerystringFromUrl(String url)
The querystring returned is NOT decoded using
URLDecoder.decode).
Map<String,List<String>> getQuerystringParametersFromUrl(String url)
The querystring will be decoded using (using URLDecoder.decode).
Map<String,List<String>> getParametersFromQuerystring(String querystring, boolean decodeQueryStringFirst)
decodeQueryStringFirst - if true, the querystring will be
decoded (using URLDecoder.decode) prior to being parsed.boolean isRequestedResourceNameEndsWithBeforeExtension(URI currentURI, String suffix)
true 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.
boolean isRequestedResourceNameEndsWithBeforeExtension(String resourceBaseName, String suffix)
true 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.
resourceBaseName - the base name of the requested resource, as
it would be returned by FilenameUtils.getBaseName(String),
without the potential extension.Copyright © 2019. All rights reserved.