@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.JsonProcessingException
java.io.IOException
com.github.fge.jsonpatch.JsonPatchException
public static <T> java.lang.String toJson(T obj) throws com.fasterxml.jackson.core.JsonProcessingException
com.fasterxml.jackson.core.JsonProcessingException
public 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.JsonParseException
com.fasterxml.jackson.databind.JsonMappingException
java.io.IOException
public 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.IOException
public static java.util.Optional<javax.servlet.http.Cookie> fetchCookie(javax.servlet.http.HttpServletRequest request, java.lang.String name)