@Component
public class LemonUtils
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
static MultiErrorException |
NOT_FOUND_EXCEPTION |
| Constructor and Description |
|---|
LemonUtils(org.springframework.context.ApplicationContext applicationContext,
org.springframework.context.MessageSource messageSource,
com.fasterxml.jackson.databind.ObjectMapper objectMapper) |
| Modifier and Type | Method and Description |
|---|---|
static void |
afterCommit(java.lang.Runnable runnable)
A convenient method for running code
after successful database commit.
|
static <T> T |
applyPatch(T originalObj,
java.lang.String patchString)
Applies a JsonPatch to an object
|
static <ID extends java.io.Serializable> |
currentUser()
Gets the current-user
|
static <ID extends java.io.Serializable> |
currentUser(org.springframework.security.core.Authentication auth)
Extracts the current-user from authentication object
|
static void |
ensureAuthority(boolean authorized,
java.lang.String messageKey)
Throws AccessDeniedException is not authorized
|
static <U extends AbstractUser<U,ID>,ID extends java.io.Serializable> |
ensureCorrectVersion(VersionedEntity<U,ID> original,
VersionedEntity<U,ID> updated)
Throws a VersionException if the versions of the
given entities aren't same.
|
static void |
ensureCredentials(boolean valid,
java.lang.String messageKey)
Throws BadCredentialsException if not valid
|
static <U extends AbstractUser<U,ID>,ID extends java.io.Serializable> |
ensureCredentialsUpToDate(com.nimbusds.jwt.JWTClaimsSet claims,
U user)
Throws BadCredentialsException if
user's credentials were updated after the JWT was issued
|
static <T> void |
ensureFound(T entity)
Throws 404 Error is the entity isn't found
|
static java.util.Optional<javax.servlet.http.Cookie> |
fetchCookie(javax.servlet.http.HttpServletRequest request,
java.lang.String name)
Fetches a cookie from the request
|
static <T> T |
fromJson(java.lang.String json,
java.lang.Class<T> clazz)
Deserializes a JSON String
|
static <T> T |
getBean(java.lang.Class<T> clazz)
Gets the reference to an application-context bean
|
static com.fasterxml.jackson.databind.ObjectMapper |
getMapper() |
static java.lang.String |
getMessage(java.lang.String messageKey,
java.lang.Object... args)
Gets a message from messages.properties
|
static <U extends AbstractUser<U,ID>,ID extends java.io.Serializable> |
login(U user)
Signs a user in
|
static <K,V> java.util.Map<K,V> |
mapOf(java.lang.Object... keyValPair)
Constructs a map of the key-value pairs,
passed as parameters
|
static java.util.function.Supplier<MultiErrorException> |
notFoundSupplier()
Supplys a 404 exception
|
void |
postConstruct() |
static <T> java.lang.String |
toJson(T obj)
Serializes an object to JSON string
|
static java.lang.String |
toString(org.springframework.core.io.Resource resource)
Reads a resource into a String
|
static java.lang.String |
uid()
Generates a random unique string
|
static MultiErrorException |
validate(boolean valid,
java.lang.String messageKey,
java.lang.Object... args)
Creates a MultiErrorException out of the given parameters
|
static MultiErrorException |
validate(java.lang.String fieldName,
boolean valid,
java.lang.String messageKey,
java.lang.Object... args)
Creates a MultiErrorException out of the given parameters
|
public static final MultiErrorException NOT_FOUND_EXCEPTION
public LemonUtils(org.springframework.context.ApplicationContext applicationContext,
org.springframework.context.MessageSource messageSource,
com.fasterxml.jackson.databind.ObjectMapper objectMapper)
@PostConstruct public void postConstruct()
public static com.fasterxml.jackson.databind.ObjectMapper getMapper()
public static <T> T getBean(java.lang.Class<T> clazz)
clazz - the type of the beanpublic static java.lang.String getMessage(java.lang.String messageKey,
java.lang.Object... args)
messageKey - the key of the messageargs - any argumentspublic static <K,V> java.util.Map<K,V> mapOf(java.lang.Object... keyValPair)
keyValPair - public static <ID extends java.io.Serializable> UserDto<ID> currentUser()
public static <ID extends java.io.Serializable> UserDto<ID> currentUser(org.springframework.security.core.Authentication auth)
auth - public static <U extends AbstractUser<U,ID>,ID extends java.io.Serializable> void login(U user)
user - public static <U extends AbstractUser<U,ID>,ID extends java.io.Serializable> void ensureCorrectVersion(VersionedEntity<U,ID> original, VersionedEntity<U,ID> updated)
original - updated - public static void ensureCredentials(boolean valid,
java.lang.String messageKey)
valid - messageKey - public static void ensureAuthority(boolean authorized,
java.lang.String messageKey)
authorized - messageKey - public static MultiErrorException validate(boolean valid, java.lang.String messageKey, java.lang.Object... args)
valid - the condition to check formessageKey - key of the error messageargs - any message argumentspublic static MultiErrorException validate(java.lang.String fieldName, boolean valid, java.lang.String messageKey, java.lang.Object... args)
fieldName - the name of the field related to the errorvalid - the condition to check formessageKey - key of the error messageargs - any message argumentspublic static <T> void ensureFound(T entity)
entity - public static java.util.function.Supplier<MultiErrorException> notFoundSupplier()
public static void afterCommit(java.lang.Runnable runnable)
runnable - public static java.lang.String uid()
public static <T> T applyPatch(T originalObj,
java.lang.String patchString)
throws com.fasterxml.jackson.core.JsonProcessingException,
java.io.IOException,
com.github.fge.jsonpatch.JsonPatchException
com.fasterxml.jackson.core.JsonProcessingExceptionjava.io.IOExceptioncom.github.fge.jsonpatch.JsonPatchExceptionpublic static <T> java.lang.String toJson(T obj)
throws com.fasterxml.jackson.core.JsonProcessingException
com.fasterxml.jackson.core.JsonProcessingExceptionpublic static <T> T fromJson(java.lang.String json,
java.lang.Class<T> clazz)
throws com.fasterxml.jackson.core.JsonParseException,
com.fasterxml.jackson.databind.JsonMappingException,
java.io.IOException
com.fasterxml.jackson.core.JsonParseExceptioncom.fasterxml.jackson.databind.JsonMappingExceptionjava.io.IOExceptionpublic static <U extends AbstractUser<U,ID>,ID extends java.io.Serializable> void ensureCredentialsUpToDate(com.nimbusds.jwt.JWTClaimsSet claims, U user)
public static java.lang.String toString(org.springframework.core.io.Resource resource)
throws java.io.IOException
java.io.IOExceptionpublic static java.util.Optional<javax.servlet.http.Cookie> fetchCookie(javax.servlet.http.HttpServletRequest request,
java.lang.String name)