From 23e9cc8109807771e485a6261f46b750126dd4d4 Mon Sep 17 00:00:00 2001 From: zihluwang Date: Sun, 30 Jun 2024 13:10:38 +0800 Subject: [PATCH] docs: added JavaDoc --- .../com/onixbyte/devkit/utils/Base64Util.java | 21 ++-- .../com/onixbyte/devkit/utils/BranchUtil.java | 100 ++++++++---------- .../devkit/utils/ChainedCalcUtil.java | 58 +++++----- .../com/onixbyte/devkit/utils/HashUtil.java | 87 ++++++--------- .../com/onixbyte/devkit/utils/MapUtil.java | 9 +- .../devkit/utils/unsafe/ReflectMapUtil.java | 51 ++++----- .../autoconfiguration/PropertyGuard.java | 6 ++ .../simplejwt/annotations/TokenEnum.java | 14 +-- .../simplejwt/jjwt/JjwtTokenResolver.java | 4 +- .../jjwt/config/JjwtTokenResolverConfig.java | 4 + ...uthzeroTokenResolverAutoConfiguration.java | 21 ++-- .../GuidAutoConfiguration.java | 6 ++ .../JjwtTokenResolverAutoConfiguration.java | 18 ++-- .../conditions/GuidCreatorCondition.java | 16 ++- .../properties/SimpleJwtProperties.java | 39 +++---- 15 files changed, 216 insertions(+), 238 deletions(-) diff --git a/devkit-utils/src/main/java/com/onixbyte/devkit/utils/Base64Util.java b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/Base64Util.java index c10ce0e..41a0cc3 100644 --- a/devkit-utils/src/main/java/com/onixbyte/devkit/utils/Base64Util.java +++ b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/Base64Util.java @@ -23,15 +23,14 @@ import java.util.Objects; /** - * The {@link Base64Util} class provides static methods to encode and decode - * strings with Base64 encoding. It utilizes the {@link Base64} class from the - * Java standard library for performing the encoding and decoding operations. - * This utility class offers convenient methods to encode and decode strings - * with different character sets. + * The {@link Base64Util} class provides static methods to encode and decode strings with Base64 + * encoding. It utilizes the {@link Base64} class from the Java standard library for performing the + * encoding and decoding operations. This utility class offers convenient methods to encode and + * decode strings with different character sets. *

- * This class is designed as a final class with a private constructor to - * prevent instantiation. All methods in this class are static, allowing easy - * access to the Base64 encoding and decoding functionality. + * This class is designed as a final class with a private constructor to prevent instantiation. + * All methods in this class are static, allowing easy access to the Base64 encoding and + * decoding functionality. *

* Example usage: *

@@ -46,9 +45,9 @@
  * System.out.println("Decoded string: " + decoded);
  * 
*

- * Note: This utility class uses the default charset (UTF-8) if no - * specific charset is provided. It is recommended to specify the charset - * explicitly to ensure consistent encoding and decoding. + * Note: This utility class uses the default charset (UTF-8) if no specific charset is + * provided. It is recommended to specify the charset explicitly to ensure consistent + * encoding and decoding. * * @author Zihlu Wang * @version 1.1.0 diff --git a/devkit-utils/src/main/java/com/onixbyte/devkit/utils/BranchUtil.java b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/BranchUtil.java index 14c1dd3..84a3204 100644 --- a/devkit-utils/src/main/java/com/onixbyte/devkit/utils/BranchUtil.java +++ b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/BranchUtil.java @@ -23,14 +23,13 @@ import java.util.function.Supplier; /** - * The {@link BranchUtil} class provides static methods to simplify conditional - * logic in Java development by leveraging lambda expressions. It offers - * convenient methods to replace verbose {@code if...else} statements with more - * concise and expressive functional constructs. + * The {@link BranchUtil} class provides static methods to simplify conditional logic in Java + * development by leveraging lambda expressions. It offers convenient methods to replace verbose + * {@code if...else} statements with more concise and expressive functional constructs. *

- * Developers can use methods in this utility class to streamline their code, - * enhance readability, and promote a more functional style of programming when - * dealing with branching logic and conditional statements. + * Developers can use methods in this utility class to streamline their code, enhance readability, + * and promote a more functional style of programming when dealing with branching logic and + * conditional statements. *

* Example: *

@@ -64,11 +63,11 @@
  * 
*

* Note: - * The {@link #and(Boolean...)} and {@link #or(Boolean...)} methods accept any - * number of boolean expressions. + * The {@link #and(Boolean...)} and {@link #or(Boolean...)} methods accept any number of boolean + * expressions. * * @param the type of the result to be handled by the methods - * @author Zihlu Wang + * @author zihluwang * @version 1.1.0 * @see java.util.function.Supplier * @see java.util.function.BooleanSupplier @@ -87,13 +86,12 @@ private BranchUtil(boolean result) { } /** - * Creates a {@code BranchUtil} instance to evaluate a logical OR operation - * on the provided boolean expressions. + * Creates a {@code BranchUtil} instance to evaluate a logical OR operation on the provided + * boolean expressions. * * @param booleans the boolean expressions to be evaluated * @param the type of the result to be handled by the methods - * @return a {@code BranchUtil} instance representing the result of the - * logical OR operation + * @return a {@code BranchUtil} instance representing the result of the logical OR operation */ public static BranchUtil or(Boolean... booleans) { var result = Arrays.stream(booleans) @@ -103,13 +101,12 @@ public static BranchUtil or(Boolean... booleans) { } /** - * Creates a {@code BranchUtil} instance to evaluate a logical AND - * operation on the provided boolean expressions. + * Creates a {@code BranchUtil} instance to evaluate a logical AND operation on the provided + * boolean expressions. * * @param booleans the boolean expressions to be evaluated * @param the type of the result to be handled by the methods - * @return a {@code BranchUtil} instance representing the result of the - * logical AND operation + * @return a {@code BranchUtil} instance representing the result of the logical AND operation */ public static BranchUtil and(Boolean... booleans) { var result = Arrays.stream(booleans) @@ -119,12 +116,11 @@ public static BranchUtil and(Boolean... booleans) { } /** - * Creates a {@code BranchUtil} instance to evaluate a logical OR operation - * on the provided boolean suppliers. + * Creates a {@code BranchUtil} instance to evaluate a logical OR operation on the provided + * boolean suppliers. * * @param booleanSuppliers the boolean suppliers to be evaluated - * @param the type of the result to be handled by the - * methods + * @param the type of the result to be handled by the methods * @return a {@code BranchUtil} instance representing the result of the * logical OR operation */ @@ -136,12 +132,11 @@ public static BranchUtil or(BooleanSupplier... booleanSuppliers) { } /** - * Creates a {@code BranchUtil} instance to evaluate a logical AND - * operation on the provided boolean suppliers. + * Creates a {@code BranchUtil} instance to evaluate a logical AND operation on the provided + * boolean suppliers. * * @param booleanSuppliers the boolean suppliers to be evaluated - * @param the type of the result to be handled by the - * methods + * @param the type of the result to be handled by the methods * @return a {@code BranchUtil} instance representing the result of the * logical AND operation */ @@ -153,22 +148,18 @@ public static BranchUtil and(BooleanSupplier... booleanSuppliers) { } /** - * Handles the result of the boolean expressions by executing the - * appropriate handler based on the result. + * Handles the result of the boolean expressions by executing the appropriate handler based + * on the result. *

- * If the result is {@code true}, the {@code ifHandler} is executed. If the - * result is {@code false} and an {@code elseHandler} is provided, it is - * executed. + * If the result is {@code true}, the {@code ifHandler} is executed. If the result is + * {@code false} and an {@code elseHandler} is provided, it is executed. *

* Returns the result of the executed handler. * - * @param ifHandler the handler to be executed if the result is - * {@code true} - * @param elseHandler the handler to be executed if the result is - * {@code false} (optional) - * @return the result of the executed handler, or {@code null} if no - * {@code elseHandler} is provided and the result of the evaluation is - * {@code false} + * @param ifHandler the handler to be executed if the result is {@code true} + * @param elseHandler the handler to be executed if the result is {@code false} (optional) + * @return the result of the executed handler, or {@code null} if no {@code elseHandler} is + * provided and the result of the evaluation is {@code false} */ public T handle(Supplier ifHandler, Supplier elseHandler) { if (this.result && Objects.nonNull(ifHandler)) { @@ -183,32 +174,28 @@ public T handle(Supplier ifHandler, Supplier elseHandler) { } /** - * Handles the result of the boolean expressions by executing the provided - * handler if the result is {@code true}. + * Handles the result of the boolean expressions by executing the provided handler if the + * result is {@code true}. *

* Returns the result of the executed handler. * - * @param ifHandler the handler to be executed if the result is - * {@code true} - * @return the result of the executed handler, or {@code null} if result of - * evaluation is {@code false} + * @param ifHandler the handler to be executed if the result is {@code true} + * @return the result of the executed handler, or {@code null} if result of evaluation is + * {@code false} */ public T handle(Supplier ifHandler) { return handle(ifHandler, null); } /** - * Handles the result of the boolean expressions by executing the - * appropriate handler based on the result. + * Handles the result of the boolean expressions by executing the appropriate handler based + * on the result. *

- * If the result is {@code true}, the {@code ifHandler} is executed. If the - * result is {@code false} and an {@code elseHandler} is provided, it is - * executed. + * If the result is {@code true}, the {@code ifHandler} is executed. If the result is + * {@code false} and an {@code elseHandler} is provided, it is executed. * - * @param ifHandler the handler to be executed if the result is - * {@code true} - * @param elseHandler the handler to be executed if the result is - * {@code false} (optional) + * @param ifHandler the handler to be executed if the result is {@code true} + * @param elseHandler the handler to be executed if the result is {@code false} (optional) */ public void handle(Runnable ifHandler, Runnable elseHandler) { if (this.result && Objects.nonNull(ifHandler)) { @@ -224,11 +211,10 @@ public void handle(Runnable ifHandler, Runnable elseHandler) { } /** - * Handles the result of the boolean expressions by executing the provided - * handler if the result is {@code true}. + * Handles the result of the boolean expressions by executing the provided handler if the + * result is {@code true}. * - * @param ifHandler the handler to be executed if the result is - * {@code true} + * @param ifHandler the handler to be executed if the result is {@code true} */ public void handle(Runnable ifHandler) { handle(ifHandler, null); diff --git a/devkit-utils/src/main/java/com/onixbyte/devkit/utils/ChainedCalcUtil.java b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/ChainedCalcUtil.java index 30f21e9..a8f395e 100644 --- a/devkit-utils/src/main/java/com/onixbyte/devkit/utils/ChainedCalcUtil.java +++ b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/ChainedCalcUtil.java @@ -26,12 +26,11 @@ import java.util.function.Function; /** - * The {@code ChainedCalcUtil} class provides a convenient way to perform - * chained high-precision calculations using {@link BigDecimal}. It allows - * users to perform mathematical operations such as addition, subtraction, - * multiplication, and division with customisable precision and scale. By using - * this utility class, developers can achieve accurate results and avoid - * precision loss in their calculations. + * The {@code ChainedCalcUtil} class provides a convenient way to perform chained high-precision + * calculations using {@link BigDecimal}. It allows users to perform mathematical operations such + * as addition, subtraction, multiplication, and division with customisable precision and scale. + * By using this utility class, developers can achieve accurate results and avoid precision loss + * in their calculations. *

* Usage: *

@@ -82,10 +81,9 @@
  * {@code ChainedCalcUtil} class.
  * 

* Note: - * The {@code ChainedCalcUtil} class internally uses {@link BigDecimal} to - * handle high-precision calculations. It is important to note that {@link - * BigDecimal} operations can be memory-intensive and may have performance - * implications for extremely large numbers or complex calculations. + * The {@code ChainedCalcUtil} class internally uses {@link BigDecimal} to handle high-precision + * calculations. It is important to note that {@link BigDecimal} operations can be memory-intensive + * and may have performance implications for extremely large numbers or complex calculations. * * @author sunzsh * @version 1.1.0 @@ -96,8 +94,7 @@ public final class ChainedCalcUtil { /** - * Creates a {@code ChainedCalcUtil} instance with the specified initial - * value. + * Creates a {@code ChainedCalcUtil} instance with the specified initial value. * * @param value the initial value for the calculation */ @@ -126,8 +123,7 @@ public ChainedCalcUtil add(Number other) { } /** - * Adds the specified value to the current value with a specified scale - * before the operation. + * Adds the specified value to the current value with a specified scale before the operation. * * @param other the value to be added * @param beforeOperateScale the scale to be applied before the operation @@ -148,8 +144,8 @@ public ChainedCalcUtil subtract(Number other) { } /** - * Subtracts the specified value from the current value with a specified - * scale before the operation. + * Subtracts the specified value from the current value with a specified scale before + * the operation. * * @param other the value to be subtracted * @param beforeOperateScale the scale to be applied before the operation @@ -170,8 +166,8 @@ public ChainedCalcUtil multiply(Number other) { } /** - * Multiplies the current value by the specified value with a specified - * scale before the operation. + * Multiplies the current value by the specified value with a specified scale before + * the operation. * * @param other the value to be multiplied by * @param beforeOperateScale the scale to be applied before the operation @@ -192,8 +188,7 @@ public ChainedCalcUtil divide(Number other) { } /** - * Divides the current value by the specified value with a specified scale - * before the operation. + * Divides the current value by the specified value with a specified scale before the operation. * * @param other the value to divide by * @param beforeOperateScale the scale to be applied before the operation @@ -216,8 +211,8 @@ public ChainedCalcUtil divideWithScale(Number other, Integer scale) { } /** - * Divides the current value by the specified value with a specified scale - * and a scale applied before the operation. + * Divides the current value by the specified value with a specified scale and a scale applied + * before the operation. * * @param other the value to divide by * @param scale the scale for the result @@ -225,7 +220,9 @@ public ChainedCalcUtil divideWithScale(Number other, Integer scale) { * @return a {@code ChainedCalcUtil} instance with the updated value */ public ChainedCalcUtil divideWithScale(Number other, Integer scale, Integer beforeOperateScale) { - return baseOperator(otherValue -> this.value.divide(otherValue, scale, RoundingMode.HALF_UP), other, beforeOperateScale); + return baseOperator((otherValue) -> + this.value.divide(otherValue, scale, RoundingMode.HALF_UP), + other, beforeOperateScale); } /** @@ -276,8 +273,7 @@ public Integer getInteger() { } /** - * Applies the specified operator function to the current value and another - * value. + * Applies the specified operator function to the current value and another value. * * @param operator the operator function to apply * @param otherValue the value to apply the operator with @@ -288,8 +284,8 @@ private ChainedCalcUtil operator(BiFunction } /** - * Applies the specified operator function to the current value and another - * value with a specified scale before the operation. + * Applies the specified operator function to the current value and another value with a + * specified scale before the operation. * * @param operator the operator function to apply * @param other the value to apply the operator with @@ -298,7 +294,10 @@ private ChainedCalcUtil operator(BiFunction * @return a ChainedCalcUtil instance with the updated value */ private ChainedCalcUtil operator(BiFunction operator, Object other, Integer beforeOperateScale) { - return baseOperator((otherValue) -> operator.apply(this.value, otherValue), other, beforeOperateScale); + return baseOperator((otherValue) -> + operator.apply(this.value, otherValue), + other, + beforeOperateScale); } /** @@ -328,8 +327,7 @@ private synchronized ChainedCalcUtil baseOperator(Function * Example usage: *

@@ -53,14 +52,14 @@
  * // Perform SHA-512 hash operation
  * String sha512Hash = HashUtil.sha512("someString");
  * 
- * The above examples demonstrate how to use the {@code HashUtil} class to - * calculate hash values for a given string using different algorithms. + * The above examples demonstrate how to use the {@code HashUtil} class to calculate hash values + * for a given string using different algorithms. *

* Note: - * The hash functions provided by the HashUtil class are one-way hash - * functions, meaning the original data cannot be retrieved from the hash - * value. These hash functions are commonly used for data integrity checks and - * password storage, but they should not be used for encryption purposes. + * The hash functions provided by the HashUtil class are one-way hash functions, meaning the + * original data cannot be retrieved from the hash value. These hash functions are commonly used + * for data integrity checks and password storage, but they should not be used for + * encryption purposes. * * @author Zihlu Wang * @version 1.1.0 @@ -70,12 +69,10 @@ public final class HashUtil { /** - * Calculates the MD2 hash value of the specified string using the given - * charset. + * Calculates the MD2 hash value of the specified string using the given charset. * * @param value the string to calculate with the MD2 algorithm - * @param charset the charset to use for encoding the string (default is - * UTF-8 if null) + * @param charset the charset to use for encoding the string (default is UTF-8 if null) * @return the MD2 hash value as a hexadecimal string */ public static String md2(String value, Charset charset) { @@ -84,8 +81,7 @@ public static String md2(String value, Charset charset) { } /** - * Calculates the MD2 hash value of the specified string using the UTF-8 - * charset. + * Calculates the MD2 hash value of the specified string using the UTF-8 charset. * * @param value the string to calculate with the MD2 algorithm * @return the MD2 hash value as a hexadecimal string @@ -95,12 +91,10 @@ public static String md2(String value) { } /** - * Calculates the MD5 hash value of the specified string using the given - * charset. + * Calculates the MD5 hash value of the specified string using the given charset. * * @param value the string to calculate with the MD5 algorithm - * @param charset the charset to use for encoding the string (default is - * UTF-8 if null) + * @param charset the charset to use for encoding the string (default is UTF-8 if null) * @return the MD5 hash value as a hexadecimal string */ public static String md5(String value, Charset charset) { @@ -109,8 +103,7 @@ public static String md5(String value, Charset charset) { } /** - * Calculates the MD5 hash value of the specified string using the UTF-8 - * charset. + * Calculates the MD5 hash value of the specified string using the UTF-8 charset. * * @param value the string to calculate with the MD5 algorithm * @return the MD5 hash value as a hexadecimal string @@ -120,12 +113,10 @@ public static String md5(String value) { } /** - * Calculates the SHA-1 hash value of the specified string using the given - * charset. + * Calculates the SHA-1 hash value of the specified string using the given charset. * * @param value the string to calculate with the SHA-1 algorithm - * @param charset the charset to use for encoding the string (default is - * UTF-8 if null) + * @param charset the charset to use for encoding the string (default is UTF-8 if null) * @return the SHA-1 hash value as a hexadecimal string */ public static String sha1(String value, Charset charset) { @@ -134,8 +125,7 @@ public static String sha1(String value, Charset charset) { } /** - * Calculates the SHA-1 hash value of the specified string using the UTF-8 - * charset. + * Calculates the SHA-1 hash value of the specified string using the UTF-8 charset. * * @param value the string to calculate with the SHA-1 algorithm * @return the SHA-1 hash value as a hexadecimal string @@ -145,12 +135,10 @@ public static String sha1(String value) { } /** - * Calculates the SHA-224 hash value of the specified string using the - * given charset. + * Calculates the SHA-224 hash value of the specified string using the given charset. * * @param value the string to calculate with the SHA-225 algorithm - * @param charset the charset to use for encoding the string (default is - * UTF-8 if null) + * @param charset the charset to use for encoding the string (default is UTF-8 if null) * @return the SHA-224 hash value as a hexadecimal string */ public static String sha224(String value, Charset charset) { @@ -174,8 +162,7 @@ public static String sha224(String value) { * given charset. * * @param value the string to calculate with the SHA-256 algorithm - * @param charset the charset to use for encoding the string (default is - * UTF-8 if null) + * @param charset the charset to use for encoding the string (default is UTF-8 if null) * @return the SHA-256 hash value as a hexadecimal string */ public static String sha256(String value, Charset charset) { @@ -184,8 +171,7 @@ public static String sha256(String value, Charset charset) { } /** - * Calculates the SHA-256 hash value of the specified string using the - * UTF-8 charset. + * Calculates the SHA-256 hash value of the specified string using the UTF-8 charset. * * @param value the string to calculate with the SHA-256 algorithm * @return the SHA-256 hash value as a hexadecimal string @@ -195,12 +181,10 @@ public static String sha256(String value) { } /** - * Calculates the SHA-384 hash value of the specified string using the - * given charset. + * Calculates the SHA-384 hash value of the specified string using the given charset. * * @param value the string to calculate with the SHA-384 algorithm - * @param charset the charset to use for encoding the string (default is - * UTF-8 if null) + * @param charset the charset to use for encoding the string (default is UTF-8 if null) * @return the SHA-384 hash value as a hexadecimal string */ public static String sha384(String value, Charset charset) { @@ -209,8 +193,7 @@ public static String sha384(String value, Charset charset) { } /** - * Calculates the SHA-384 hash value of the specified string using the - * UTF-8 charset. + * Calculates the SHA-384 hash value of the specified string using the UTF-8 charset. * * @param value the string to calculate with the SHA-384 algorithm * @return the SHA-384 hash value as a hexadecimal string @@ -220,12 +203,10 @@ public static String sha384(String value) { } /** - * Calculates the SHA-512 hash value of the specified string using the - * given charset. + * Calculates the SHA-512 hash value of the specified string using the given charset. * * @param value the string to calculate with the SHA-512 algorithm - * @param charset the charset to use for encoding the string (default is - * UTF-8 if null) + * @param charset the charset to use for encoding the string (default is UTF-8 if null) * @return the SHA-512 hash value as a hexadecimal string */ public static String sha512(String value, Charset charset) { @@ -234,8 +215,7 @@ public static String sha512(String value, Charset charset) { } /** - * Calculates the SHA-512 hash value of the specified string using the - * UTF-8 charset. + * Calculates the SHA-512 hash value of the specified string using the UTF-8 charset. * * @param value the string to calculate with the SHA-512 algorithm * @return the SHA-512 hash value as a hexadecimal string @@ -256,12 +236,11 @@ private HashUtil() { * * @param method the hash algorithm to use * @param value the string to calculate the hash value for - * @param charset the charset to use for encoding the string (default is - * UTF-8 if null) - * @return the hash value as a hexadecimal string, or an empty string if - * the algorithm is not available - * @throws RuntimeException if an unknown algorithm name is provided - * (should not occur under controlled usage) + * @param charset the charset to use for encoding the string (default is UTF-8 if null) + * @return the hash value as a hexadecimal string, or an empty string if the algorithm is + * not available + * @throws RuntimeException if an unknown algorithm name is provided (should not occur under + * controlled usage) */ private static String hash(String method, String value, Charset charset) { try { diff --git a/devkit-utils/src/main/java/com/onixbyte/devkit/utils/MapUtil.java b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/MapUtil.java index b929cee..aa23699 100644 --- a/devkit-utils/src/main/java/com/onixbyte/devkit/utils/MapUtil.java +++ b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/MapUtil.java @@ -28,7 +28,7 @@ * to objects. *

* Note: Since version 1.4.2, this util class removed reflection API and transferred to a safer API. - * Please see documentation for more information. + * Please see documentation for more information. * * @author Zihlu Wang * @version 1.4.2 @@ -41,7 +41,9 @@ public final class MapUtil { /** * Converts an object to a map by mapping the field names to their corresponding values. * - * @param entity the object to be converted to a map + * @param the type of the object + * @param entity the object to be converted to a map + * @param adapters adapts the entity for mapping to a map * @return a map representing the fields and their values of the object */ public static Map objectToMap(T entity, @@ -73,6 +75,7 @@ public static T mapToObject(Map objectMap, /** * Retrieves the value of a field from an object using reflection. * + * @param the type of the entity * @param the type of the field value * @param entity the object from which to retrieve the field value * @param adapter the adapter to execute the getter @@ -86,6 +89,8 @@ public static T getFieldValue(E entity, ObjectMapAdapter adapter) { /** * Sets the value of a field in an object using reflection. * + * @param the type of the entity + * @param the type of the field value * @param entity the object in which to set the field value * @param adapter the adapter to execute the setter * @param fieldValue the value to be set diff --git a/devkit-utils/src/main/java/com/onixbyte/devkit/utils/unsafe/ReflectMapUtil.java b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/unsafe/ReflectMapUtil.java index c69ec69..11815ed 100644 --- a/devkit-utils/src/main/java/com/onixbyte/devkit/utils/unsafe/ReflectMapUtil.java +++ b/devkit-utils/src/main/java/com/onixbyte/devkit/utils/unsafe/ReflectMapUtil.java @@ -24,11 +24,10 @@ import java.util.Map; /** - * {@code MapUtil} is a utility class that provides methods for converting - * objects to maps and maps to objects. + * {@code MapUtil} is a utility class that provides methods for converting objects to maps and + * maps to objects. *

- * It also provides methods for getting and setting field values using - * reflection. + * It also provides methods for getting and setting field values using reflection. * * @author zihluwang * @version 1.4.2 @@ -38,13 +37,11 @@ public final class ReflectMapUtil { /** - * Converts an object to a map by mapping the field names to their - * corresponding values. + * Converts an object to a map by mapping the field names to their corresponding values. * * @param obj the object to be converted to a map * @return a map representing the fields and their values of the object - * @throws IllegalAccessException if an error occurs while accessing the - * fields of the object + * @throws IllegalAccessException if an error occurs while accessing the fields of the object */ public static Map objectToMap(Object obj) throws IllegalAccessException { if (obj == null) { @@ -66,24 +63,21 @@ public static Map objectToMap(Object obj) throws IllegalAccessEx } /** - * Converts a map to an object of the specified type by setting the field - * values using the map entries. + * Converts a map to an object of the specified type by setting the field values using the + * map entries. * * @param map the map representing the fields and their values * @param requiredType the class of the object to be created * @param the type of the object to be created - * @return an object of the specified type with the field values set from - * the map - * @throws NoSuchMethodException if the constructor of the required - * type is not found - * @throws InvocationTargetException if an error occurs while invoking the - * constructor - * @throws InstantiationException if the required type is abstract or an - * interface - * @throws IllegalAccessException if an error occurs while accessing the - * fields of the object + * @return an object of the specified type with the field values set from the map + * @throws NoSuchMethodException if the constructor of the required type is not found + * @throws InvocationTargetException if an error occurs while invoking the constructor + * @throws InstantiationException if the required type is abstract or an interface + * @throws IllegalAccessException if an error occurs while accessing the fields of the object */ - public static T mapToObject(Map map, Class requiredType) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException { + public static T mapToObject(Map map, Class requiredType) + throws NoSuchMethodException, InvocationTargetException, InstantiationException, + IllegalAccessException { var bean = requiredType.getConstructor().newInstance(); if (map != null) { for (var entry : map.entrySet()) { @@ -143,7 +137,8 @@ public static T mapToObject(Map map, Class requiredType) * field getter method * @throws NoSuchMethodException if the specified getter is not present */ - public static T getFieldValue(Object obj, String fieldName, Class fieldType) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException { + public static T getFieldValue(Object obj, String fieldName, Class fieldType) + throws IllegalAccessException, InvocationTargetException, NoSuchMethodException { var methodName = getMethodName("get", fieldName); var objectClass = obj.getClass(); var method = objectClass.getDeclaredMethod(methodName); @@ -158,10 +153,8 @@ public static T getFieldValue(Object obj, String fieldName, Class fieldTy * @param obj the object in which to set the field value * @param fieldName the name of the field * @param fieldValue the value to be set - * @throws InvocationTargetException if an error occurs while invoking the - * field setter method - * @throws IllegalAccessException if an error occurs while accessing the - * field + * @throws InvocationTargetException if an error occurs while invoking the field setter method + * @throws IllegalAccessException if an error occurs while accessing the field * @throws NoSuchMethodException if the specific setter is not present */ public static void setFieldValue(Object obj, String fieldName, Object fieldValue) throws InvocationTargetException, IllegalAccessException, NoSuchMethodException { @@ -178,8 +171,7 @@ public static void setFieldValue(Object obj, String fieldName, Object fieldValue * @param value the value to be cast * @param requiredType the type to which the value should be cast * @param the type to which the value should be cast - * @return the cast value, or null if the value cannot be cast to the - * required type + * @return the cast value, or null if the value cannot be cast to the required type */ public static T cast(Object value, Class requiredType) { if (requiredType.isInstance(value)) { @@ -202,8 +194,7 @@ private static String getMethodName(String prefix, String fieldName) { /** * Returns the default string representation of the specified object. * - * @param obj the object for which to return the default string - * representation + * @param obj the object for which to return the default string representation * @return the default string representation of the object */ private static String defaultObject(Object obj) { diff --git a/property-guard-spring-boot-starter/src/main/java/com/onixbyte/propertyguard/autoconfiguration/PropertyGuard.java b/property-guard-spring-boot-starter/src/main/java/com/onixbyte/propertyguard/autoconfiguration/PropertyGuard.java index 24655ba..25354a2 100644 --- a/property-guard-spring-boot-starter/src/main/java/com/onixbyte/propertyguard/autoconfiguration/PropertyGuard.java +++ b/property-guard-spring-boot-starter/src/main/java/com/onixbyte/propertyguard/autoconfiguration/PropertyGuard.java @@ -70,6 +70,12 @@ */ public class PropertyGuard implements EnvironmentPostProcessor { + /** + * Create a {@link PropertyGuard} instance. + */ + public PropertyGuard() { + } + /** * Process the encryption environment variables. * diff --git a/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/annotations/TokenEnum.java b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/annotations/TokenEnum.java index 52c994e..d0823c9 100644 --- a/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/annotations/TokenEnum.java +++ b/simple-jwt-facade/src/main/java/com/onixbyte/simplejwt/annotations/TokenEnum.java @@ -25,8 +25,8 @@ import java.lang.annotation.Target; /** - * This annotation marks the enum field declared in payload class will be - * handled as basic data types in {@link TokenDataType}. + * This annotation marks the enum field declared in payload class will be handled as basic data + * types in {@link TokenDataType}. * * @author Zihlu Wang */ @@ -35,14 +35,16 @@ public @interface TokenEnum { /** - * The name of the field of the base data corresponding to the - * enumeration data. + * The name of the field of the base data corresponding to the enumeration data. + * + * @return the name of the property */ String propertyName(); /** - * The attribute {@code dataType} specifies what base data type to treat - * this enum as. + * The attribute {@code dataType} specifies what base data type to treat this enum as. + * + * @return the data type of the token */ TokenDataType dataType(); diff --git a/simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/JjwtTokenResolver.java b/simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/JjwtTokenResolver.java index f2334f6..3607631 100644 --- a/simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/JjwtTokenResolver.java +++ b/simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/JjwtTokenResolver.java @@ -233,7 +233,7 @@ public String createToken(Duration expireAfter, String audience, String subject, * token * @return the generated token as a {@code String} or {@code null} if * creation fails - * @see MapUtil#objectToMap(Object) + * @see MapUtil#objectToMap(Object, Map) */ @Override public String createToken(Duration expireAfter, String audience, String subject, T payload) { @@ -291,7 +291,7 @@ public Jws resolve(String token) { * @param targetType the target class representing the payload data type * @return an instance of the specified target type with the extracted * payload data, or {@code null} if extraction fails. - * @see MapUtil#mapToObject(Map, Class) + * @see MapUtil#mapToObject(Map, Object, Map) */ @Override public T extract(String token, Class targetType) { diff --git a/simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/config/JjwtTokenResolverConfig.java b/simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/config/JjwtTokenResolverConfig.java index 8f7b18a..db955be 100644 --- a/simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/config/JjwtTokenResolverConfig.java +++ b/simple-jwt-jjwt/src/main/java/com/onixbyte/simplejwt/jjwt/config/JjwtTokenResolverConfig.java @@ -61,6 +61,10 @@ */ public final class JjwtTokenResolverConfig implements TokenResolverConfig> { + /** + * Get the instance for io.jsonwebtoken:jjwt config. + * @return the instance for io.jsonwebtoken:jjwt config + */ public static JjwtTokenResolverConfig getInstance() { if (instance == null) { instance = new JjwtTokenResolverConfig(); diff --git a/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/AuthzeroTokenResolverAutoConfiguration.java b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/AuthzeroTokenResolverAutoConfiguration.java index 32fa23a..03dad48 100644 --- a/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/AuthzeroTokenResolverAutoConfiguration.java +++ b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/AuthzeroTokenResolverAutoConfiguration.java @@ -69,8 +69,9 @@ public class AuthzeroTokenResolverAutoConfiguration { * Constructs a new {@code SimpleJwtAutoConfiguration} instance with the * provided SimpleJwtProperties. * - * @param simpleJwtProperties the SimpleJwtProperties instance - * @param objectMapper Jackson JSON Handler + * @param simpleJwtProperties a {@link SimpleJwtProperties} instance + * @param jtiCreator a creator to create ids for JSON Web Token + * @param objectMapper jackson JSON Handler */ @Autowired public AuthzeroTokenResolverAutoConfiguration(SimpleJwtProperties simpleJwtProperties, @Qualifier("jtiCreator") GuidCreator jtiCreator, ObjectMapper objectMapper) { @@ -80,11 +81,10 @@ public AuthzeroTokenResolverAutoConfiguration(SimpleJwtProperties simpleJwtPrope } /** - * Creates a new {@link TokenResolver} bean using {@link - * AuthzeroTokenResolver} if no existing {@link TokenResolver} bean is - * found. The {@link AuthzeroTokenResolver} is configured with the - * provided {@link GuidCreator}, {@code algorithm}, {@code issuer}, and - * {@code secret} properties from {@link SimpleJwtProperties}. + * Creates a new {@link TokenResolver} bean using {@link AuthzeroTokenResolver} if no existing + * {@link TokenResolver} bean is found. The {@link AuthzeroTokenResolver} is configured with the + * provided {@link GuidCreator}, {@code algorithm}, {@code issuer}, and {@code secret} + * properties from {@link SimpleJwtProperties}. * * @return the {@link TokenResolver} instance */ @@ -99,15 +99,8 @@ public TokenResolver tokenResolver() { ); } - /** - * The GuidCreator instance to be used for generating JWT IDs (JTI). - */ private final GuidCreator jtiCreator; - /** - * The {@code SimpleJwtProperties} instance containing the configuration - * properties for Simple JWT. - */ private final SimpleJwtProperties simpleJwtProperties; private final ObjectMapper objectMapper; diff --git a/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/GuidAutoConfiguration.java b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/GuidAutoConfiguration.java index 953270f..9dfa938 100644 --- a/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/GuidAutoConfiguration.java +++ b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/GuidAutoConfiguration.java @@ -37,6 +37,12 @@ @AutoConfiguration public class GuidAutoConfiguration { + /** + * Default constructor. + */ + public GuidAutoConfiguration() { + } + /** * Create a default {@code jtiCreator} with UUID. * diff --git a/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/JjwtTokenResolverAutoConfiguration.java b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/JjwtTokenResolverAutoConfiguration.java index 57c6891..37f2d54 100644 --- a/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/JjwtTokenResolverAutoConfiguration.java +++ b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/JjwtTokenResolverAutoConfiguration.java @@ -66,9 +66,10 @@ public class JjwtTokenResolverAutoConfiguration { /** - * Constructs a new {@code SimpleJwtAutoConfiguration} instance with the - * provided SimpleJwtProperties. + * Constructs a new {@code SimpleJwtAutoConfiguration} instance with the provided + * {@link SimpleJwtProperties}. * + * @param jtiCreator a creator to create JSON Web Token ids * @param simpleJwtProperties the SimpleJwtProperties instance */ @Autowired @@ -78,11 +79,10 @@ public JjwtTokenResolverAutoConfiguration(SimpleJwtProperties simpleJwtPropertie } /** - * Creates a new {@link TokenResolver} bean using {@link - * JjwtTokenResolver} if no existing {@link TokenResolver} bean is - * found. The {@link JjwtTokenResolver} is configured with the - * provided {@link GuidCreator}, {@code algorithm}, {@code issuer}, and - * {@code secret} properties from {@link SimpleJwtProperties}. + * Creates a new {@link TokenResolver} bean using {@link JjwtTokenResolver} if no existing + * {@link TokenResolver} bean is found. The {@link JjwtTokenResolver} is configured with the + * provided {@link GuidCreator}, {@code algorithm}, {@code issuer}, and {@code secret} + * properties from {@link SimpleJwtProperties}. * * @return the {@link TokenResolver} instance */ @@ -102,8 +102,8 @@ public TokenResolver> tokenResolver() { private final GuidCreator jtiCreator; /** - * The {@code SimpleJwtProperties} instance containing the configuration - * properties for Simple JWT. + * The {@code SimpleJwtProperties} instance containing the configuration properties + * for Simple JWT. */ private final SimpleJwtProperties simpleJwtProperties; diff --git a/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/conditions/GuidCreatorCondition.java b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/conditions/GuidCreatorCondition.java index 2dcffd2..3c25ebc 100644 --- a/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/conditions/GuidCreatorCondition.java +++ b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/conditions/GuidCreatorCondition.java @@ -35,16 +35,22 @@ @Slf4j public class GuidCreatorCondition implements Condition { + /** + * Default constructor. + */ + public GuidCreatorCondition() { + } + /** * The condition to create bean {@code jtiCreator}. *

- * If Spring does not have a bean of type - * {@link GuidCreator} named {@code jtiCreator} - * in the application context, then create {@code jtiCreator}. + * If Spring does not have a bean of type {@link GuidCreator} named {@code jtiCreator} in the + * application context, then create {@code jtiCreator}. * * @param context the spring application context - * @param metadata the metadata of the {@link org.springframework.core.type.AnnotationMetadata class} - * or {@link org.springframework.core.type.MethodMetadata method} being checked + * @param metadata the metadata of the {@link org.springframework.core.type.AnnotationMetadata + * class} or {@link org.springframework.core.type.MethodMetadata method} + * being checked */ @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { diff --git a/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/properties/SimpleJwtProperties.java b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/properties/SimpleJwtProperties.java index f34019b..47d121e 100644 --- a/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/properties/SimpleJwtProperties.java +++ b/simple-jwt-spring-boot-starter/src/main/java/com/onixbyte/simplejwt/autoconfiguration/properties/SimpleJwtProperties.java @@ -25,21 +25,20 @@ import org.springframework.boot.context.properties.ConfigurationProperties; /** - * {@code SimpleJwtProperties} is a configuration properties class used to - * store the properties related to Simple JWT library configurations. These - * properties can be configured in the application's properties file (e.g., - * application.properties) with the prefix "code-crafters.simple-jwt". + * {@code SimpleJwtProperties} is a configuration properties class used to store the properties + * related to Simple JWT library configurations. These properties can be configured in the + * application's properties file (e.g., application.properties) with the prefix + * "onixbyte.simple-jwt". *

- * {@code SimpleJwtProperties} provides configuration options for the JWT - * algorithm, issuer, and secret. The properties are used by the {@link - * AuthzeroTokenResolverAutoConfiguration} and {@link - * JjwtTokenResolver} to set up the - * necessary configurations for JWT generation and validation. + * {@code SimpleJwtProperties} provides configuration options for the JWT algorithm, issuer, + * and secret. The properties are used by the {@link AuthzeroTokenResolverAutoConfiguration} and + * {@link JjwtTokenResolver} to set up the necessary configurations for JWT generation + * and validation. *

- * Developers can customise the JWT algorithm, issuer, and secret by setting - * the corresponding properties in the application's properties file. The - * {@code SimpleJwtAutoConfiguration} class reads these properties and uses - * them to create the TokenResolver bean with the desired configuration. + * Developers can customise the JWT algorithm, issuer, and secret by setting the corresponding + * properties in the application's properties file. The {@code SimpleJwtAutoConfiguration} class + * reads these properties and uses them to create the TokenResolver bean with the + * desired configuration. * * @author Zihlu Wang * @version 1.1.0 @@ -49,6 +48,12 @@ @ConfigurationProperties(prefix = "onixbyte.simple-jwt") public class SimpleJwtProperties { + /** + * Default constructor. + */ + public SimpleJwtProperties() { + } + /** * The algorithm used for JWT generation and validation. Default value is * {@link TokenAlgorithm#HS256} @@ -56,15 +61,13 @@ public class SimpleJwtProperties { private TokenAlgorithm algorithm = TokenAlgorithm.HS256; /** - * The issuer value to be included in the generated JWT. Default value is - * an empty String. + * The issuer value to be included in the generated JWT. Default value is an empty String. */ private String issuer = ""; /** - * The secret key used for JWT generation and validation. Default value is - * the result of call to {@link - * SecretCreator#createSecret(int, boolean, boolean, boolean)}. + * The secret key used for JWT generation and validation. Default value is the result of call to + * {@link SecretCreator#createSecret(int, boolean, boolean, boolean)}. */ private String secret = SecretCreator.createSecret(32, true, true, true);