diff --git a/utility-logging/src/main/java/module-info.java b/utility-logging/src/main/java/module-info.java
index 69b7f7e5..16d1060c 100644
--- a/utility-logging/src/main/java/module-info.java
+++ b/utility-logging/src/main/java/module-info.java
@@ -3,6 +3,17 @@
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
+/**
+ * The com.dua3.utility.logging module is responsible for providing utilities related to logging.
+ * It exports the com.dua3.utility.logging package which contains classes and interfaces related to logging.
+ *
+ * The module requires the com.dua3.cabe.annotations package at compile time.
+ *
+ * It uses the com.dua3.utility.logging.ILogEntryDispatcherFactory service to obtain an instance of the
+ * LogEntryDispatcher.
+ *
+ * The module also requires the org.apache.logging.log4j and com.dua3.utility packages at runtime.
+ */
open module com.dua3.utility.logging {
exports com.dua3.utility.logging;
diff --git a/utility-logging/utility-logging-log4j/src/main/java/module-info.java b/utility-logging/utility-logging-log4j/src/main/java/module-info.java
index c3a24ae5..9b9bd55f 100644
--- a/utility-logging/utility-logging-log4j/src/main/java/module-info.java
+++ b/utility-logging/utility-logging-log4j/src/main/java/module-info.java
@@ -6,6 +6,9 @@
import com.dua3.utility.logging.ILogEntryDispatcherFactory;
import com.dua3.utility.logging.log4j.LogEntryDispatcherFactoryLog4j;
+/**
+ * This module provides logging functionality using Log4j.
+ */
open module com.dua3.utility.logging.log4j {
exports com.dua3.utility.logging.log4j;
diff --git a/utility-logging/utility-logging-slf4j/src/main/java/module-info.java b/utility-logging/utility-logging-slf4j/src/main/java/module-info.java
index 897a9d8b..f1a54a6b 100644
--- a/utility-logging/utility-logging-slf4j/src/main/java/module-info.java
+++ b/utility-logging/utility-logging-slf4j/src/main/java/module-info.java
@@ -8,6 +8,9 @@
import com.dua3.utility.logging.slf4j.LoggingServiceProviderSlf4j;
import org.slf4j.spi.SLF4JServiceProvider;
+/**
+ * This module provides SLF4J logging functionality and integration with the Logging utility module.
+ */
open module com.dua3.utility.logging.slf4j {
exports com.dua3.utility.logging.slf4j;
provides SLF4JServiceProvider with LoggingServiceProviderSlf4j;
diff --git a/utility-samples/utility-samples-log4j/src/main/java/module-info.java b/utility-samples/utility-samples-log4j/src/main/java/module-info.java
index 1a23b017..ff99a79e 100644
--- a/utility-samples/utility-samples-log4j/src/main/java/module-info.java
+++ b/utility-samples/utility-samples-log4j/src/main/java/module-info.java
@@ -3,6 +3,9 @@
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
+/**
+ * This module contains the classes for the sample applications using Log4J.
+ */
open module com.dua3.utility.samples.log4j {
exports com.dua3.utility.samples.log4j;
diff --git a/utility-samples/utility-samples-slf4j/src/main/java/module-info.java b/utility-samples/utility-samples-slf4j/src/main/java/module-info.java
index 720c2c2f..7961e795 100644
--- a/utility-samples/utility-samples-slf4j/src/main/java/module-info.java
+++ b/utility-samples/utility-samples-slf4j/src/main/java/module-info.java
@@ -3,6 +3,9 @@
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
+/**
+ * This module contains the classes for the sample applications using SLF4J.
+ */
open module com.dua3.utility.samples.slf4j {
exports com.dua3.utility.samples.slf4j;
diff --git a/utility-swing/src/main/java/module-info.java b/utility-swing/src/main/java/module-info.java
index 7defeedf..712c1512 100644
--- a/utility-swing/src/main/java/module-info.java
+++ b/utility-swing/src/main/java/module-info.java
@@ -3,6 +3,14 @@
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
+/**
+ * This module provides utilities related to Swing-based GUI applications.
+ *
+ * The module provides implementations of the FontUtil and ImageUtil interfaces.
+ * These implementations are automatically chosen at runtime:
+ * - com.dua3.utility.swing.SwingFontUtil is the implementation of FontUtil
+ * - com.dua3.utility.swing.SwingImageUtil is the implementation of ImageUtil
+ */
open module com.dua3.utility.swing {
exports com.dua3.utility.swing;
diff --git a/utility/src/main/java/com/dua3/utility/data/FilterIterator.java b/utility/src/main/java/com/dua3/utility/data/FilterIterator.java
index 34fb3480..0de41c9c 100644
--- a/utility/src/main/java/com/dua3/utility/data/FilterIterator.java
+++ b/utility/src/main/java/com/dua3/utility/data/FilterIterator.java
@@ -30,11 +30,12 @@ public class FilterIterator implements Iterator {
public FilterIterator(Iterator iterator, Predicate predicate) {
this.iterator = Objects.requireNonNull(iterator);
this.predicate = Objects.requireNonNull(predicate);
+ this.done = false;
findNext();
}
/**
- * Move internal iterator to the next item that matches the predicate.
+ * Move the internal iterator to the next item that matches the predicate.
*/
private void findNext() {
if (done) {
diff --git a/utility/src/main/java/com/dua3/utility/data/PeekIterator.java b/utility/src/main/java/com/dua3/utility/data/PeekIterator.java
index 9c657fa3..86adac2c 100644
--- a/utility/src/main/java/com/dua3/utility/data/PeekIterator.java
+++ b/utility/src/main/java/com/dua3/utility/data/PeekIterator.java
@@ -25,6 +25,7 @@ public class PeekIterator implements Iterator {
*/
public PeekIterator(Iterator iterator) {
this.iterator = Objects.requireNonNull(iterator);
+ this.done = false;
move();
}
diff --git a/utility/src/main/java/com/dua3/utility/io/IoUtil.java b/utility/src/main/java/com/dua3/utility/io/IoUtil.java
index 518b92ed..3c3c7364 100644
--- a/utility/src/main/java/com/dua3/utility/io/IoUtil.java
+++ b/utility/src/main/java/com/dua3/utility/io/IoUtil.java
@@ -787,7 +787,7 @@ public static Stream glob(Path base, String pattern) throws IOException {
* Returned path should be created the same as the relative path resolved by base.
* @param base the base path
* @param p the path
- * @return
+ * @return the normalized path
*/
private static Path normalizePath(Path base, Path p) {
// When a fixed path prefix was extracted in glob, p and base have different root
diff --git a/utility/src/main/java/com/dua3/utility/math/geometry/PathBuilder2f.java b/utility/src/main/java/com/dua3/utility/math/geometry/PathBuilder2f.java
index 54c9578a..91f222f7 100644
--- a/utility/src/main/java/com/dua3/utility/math/geometry/PathBuilder2f.java
+++ b/utility/src/main/java/com/dua3/utility/math/geometry/PathBuilder2f.java
@@ -79,7 +79,7 @@ public PathBuilder2f moveTo(Vector2f v) {
* Add a line from the current position to a new position.
*
* @param v the new position
- * @return
+ * @return this instance
*/
public PathBuilder2f lineTo(Vector2f v) {
if (!open) {
@@ -100,7 +100,7 @@ public PathBuilder2f lineTo(Vector2f v) {
* @param p1 second control point
* @param p2 third control point
* @param p3 fourth control point
- * @return
+ * @return this instance
*/
public PathBuilder2f curveTo(Vector2f p1, Vector2f p2, Vector2f p3) {
if (!open) {
@@ -125,7 +125,7 @@ public PathBuilder2f curveTo(Vector2f p1, Vector2f p2, Vector2f p3) {
* the path is reset when new segments are added to it after calling this method
*
*
- * @return
+ * @return this instance
*/
public PathBuilder2f closePath() {
if (open) {
@@ -145,7 +145,7 @@ public PathBuilder2f closePath() {
* the path is reset when new segments are added to it after calling this method
*
*
- * @return
+ * @return this instance
*/
public PathBuilder2f endPath() {
if (open) {
diff --git a/utility/src/main/java/com/dua3/utility/options/ArgumentsParser.java b/utility/src/main/java/com/dua3/utility/options/ArgumentsParser.java
index 3be3d90d..820519f0 100644
--- a/utility/src/main/java/com/dua3/utility/options/ArgumentsParser.java
+++ b/utility/src/main/java/com/dua3/utility/options/ArgumentsParser.java
@@ -24,15 +24,15 @@ public class ArgumentsParser {
private final Map> options;
- int minPositionalArgs;
+ final int minPositionalArgs;
- int maxPositionalArgs;
+ final int maxPositionalArgs;
- private String positionalArgDisplayName;
+ private final String positionalArgDisplayName;
- private String name;
+ private final String name;
- private String description;
+ private final String description;
/**
* Returns a new instance of ArgumentsParserBuilder.
@@ -64,7 +64,7 @@ public static ArgumentsParserBuilder builder() {
}
/**
- * Parses command line arguments and returns an instance of Arguments.
+ * Parse the command line arguments and return an instance of {@link Arguments}.
*
* @param args the command line arguments to parse
* @return an instance of Arguments containing the parsed options and positional arguments
diff --git a/utility/src/main/java/com/dua3/utility/options/ArgumentsParserBuilder.java b/utility/src/main/java/com/dua3/utility/options/ArgumentsParserBuilder.java
index 72d5ee54..bfb9b3e9 100644
--- a/utility/src/main/java/com/dua3/utility/options/ArgumentsParserBuilder.java
+++ b/utility/src/main/java/com/dua3/utility/options/ArgumentsParserBuilder.java
@@ -91,6 +91,7 @@ public Flag flag(String... names) {
* Creates a SimpleOption with the given mapper function and names.
*
* @param the option's argument type.
+ * @param type {@link Class} instance of the option's argument type
* @param names the names for the option, at least one
* @return the created SimpleOption
*/
@@ -126,6 +127,7 @@ public > ChoiceOption choiceOption(Class extends E> enumC
* Adds a standard option to the ArgumentsParserBuilder instance being built.
*
* @param the option's argument type.
+ * @param type {@link Class} instance of the option's argument type
* @param names the names for the option, at least one.
* @return the created StandardOption.
*/
diff --git a/utility/src/main/java/com/dua3/utility/text/RichTextBuilder.java b/utility/src/main/java/com/dua3/utility/text/RichTextBuilder.java
index 2c6f012a..7259b1eb 100644
--- a/utility/src/main/java/com/dua3/utility/text/RichTextBuilder.java
+++ b/utility/src/main/java/com/dua3/utility/text/RichTextBuilder.java
@@ -257,7 +257,7 @@ public RichTextBuilder push(String name, Object value) {
* Pop attribute that has been set using {@link #push(String, Object)}.
*
* @param name attribute name
- * @return
+ * @return this instance
*/
public RichTextBuilder pop(String name) {
AttributeChange change = openedAttributes.pop();
@@ -275,6 +275,7 @@ public RichTextBuilder pop(String name) {
* Push style. Remove the style again by calling {@link #pop(Style)}.
*
* @param style the {@link Style} to push
+ * @return this instance
*/
@SuppressWarnings("unchecked")
public RichTextBuilder push(Style style) {
@@ -290,6 +291,7 @@ public RichTextBuilder push(Style style) {
* Pop style that has been set using {@link #push(Style)}.
*
* @param style the style
+ * @return this instance
*/
public RichTextBuilder pop(Style style) {
return pop(RichText.ATTRIBUTE_NAME_STYLE_LIST);
diff --git a/utility/src/main/java/module-info.java b/utility/src/main/java/module-info.java
index 884640b8..c880ca9e 100644
--- a/utility/src/main/java/module-info.java
+++ b/utility/src/main/java/module-info.java
@@ -3,6 +3,36 @@
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
+/**
+ * The com.dua3.utility module provides utility classes for various purposes, such as
+ * concurrent programming, data manipulation, I/O operations, language utilities,
+ * mathematical operations, options handling, text manipulation, and XML processing.
+ *
+ * This module exports the following packages:
+ *
+ * - com.dua3.utility.concurrent: Utility classes for concurrent programming.
+ *
- com.dua3.utility.data: Utility classes for data manipulation.
+ *
- com.dua3.utility.io: Utility classes for I/O operations.
+ *
- com.dua3.utility.lang: Utility classes for language utilities.
+ *
- com.dua3.utility.math: Utility classes for mathematical operations.
+ *
- com.dua3.utility.math.geometry: Utility classes for geometric operations.
+ *
- com.dua3.utility.options: Utility classes for handling options.
+ *
- com.dua3.utility.text: Utility classes for text manipulation.
+ *
- com.dua3.utility.xml: Utility classes for XML processing.
+ *
+ * This module requires the following modules:
+ *
+ * - requires static com.dua3.cabe.annotations: A static requirement for the com.dua3.cabe.annotations module.
+ *
- requires java.xml: A requirement for the java.xml module.
+ *
- requires org.apache.logging.log4j: A requirement for the org.apache.logging.log4j module.
+ *
+ * This module uses the following services:
+ *
+ * - com.dua3.utility.text.FontUtil: A service used by the TextUtil class for font handling.
+ *
- com.dua3.utility.io.FileType: A service used for file type handling.
+ *
- com.dua3.utility.data.ImageUtil: A service used for image manipulation.
+ *
+ */
open module com.dua3.utility {
exports com.dua3.utility.concurrent;
exports com.dua3.utility.data;