diff --git a/pom.xml b/pom.xml
index 31ccdfb..73f1f6f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,6 +64,11 @@
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.6.3
+
diff --git a/src/main/java/me/zinch/App.java b/src/main/java/me/zinch/App.java
index 473bff5..80dfc13 100644
--- a/src/main/java/me/zinch/App.java
+++ b/src/main/java/me/zinch/App.java
@@ -6,6 +6,9 @@ import me.zinch.exceptions.ValidationException;
import java.io.IOException;
+/**
+ * Main class for running the application.
+ */
public class App {
public static void main(String[] args) {
Runtime.getRuntime().addShutdownHook(new ShutdownHook());
diff --git a/src/main/java/me/zinch/commands/Add.java b/src/main/java/me/zinch/commands/Add.java
index 2a866bf..96b68e8 100644
--- a/src/main/java/me/zinch/commands/Add.java
+++ b/src/main/java/me/zinch/commands/Add.java
@@ -6,6 +6,10 @@ import me.zinch.wrapper.ProductCollection;
import java.util.regex.Pattern;
+/**
+ * The Add class represents a command to add a new element to a collection.
+ * It extends the Command class.
+ */
public class Add extends Command {
public Add() {
super("add {element}", "добавить новый элемент в коллекцию", Pattern.compile("^add"));
diff --git a/src/main/java/me/zinch/commands/AddIfMax.java b/src/main/java/me/zinch/commands/AddIfMax.java
index 40e3c65..e9976a8 100644
--- a/src/main/java/me/zinch/commands/AddIfMax.java
+++ b/src/main/java/me/zinch/commands/AddIfMax.java
@@ -5,6 +5,10 @@ import me.zinch.wrapper.ProductCollection;
import java.util.regex.Pattern;
+/**
+ * The AddIfMax class represents a command to add a new element to a collection if its price value exceeds the maximum price value in the collection.
+ * It extends the Command class.
+ */
public class AddIfMax extends Command {
public AddIfMax() {
super("add_if_max {element}", "добавить новый элемент в коллекцию, если его значение цены превышает значение наибольшей цены этой коллекции", Pattern.compile("^add_if_max \\d+"));
diff --git a/src/main/java/me/zinch/commands/AddIfMin.java b/src/main/java/me/zinch/commands/AddIfMin.java
index 6613c79..bd771ad 100644
--- a/src/main/java/me/zinch/commands/AddIfMin.java
+++ b/src/main/java/me/zinch/commands/AddIfMin.java
@@ -5,6 +5,10 @@ import me.zinch.wrapper.ProductCollection;
import java.util.regex.Pattern;
+/**
+ * The AddIfMin class represents a command to add a new element to a collection if its price is lower than the lowest price in the collection.
+ * It extends the Command class.
+ */
public class AddIfMin extends Command {
public AddIfMin() {
super("add_if_min {element}", "добавить новый элемент в коллекцию, если его значение цены меньше, чем у наименьшей цены этой коллекции", Pattern.compile("^add_if_min \\d+"));
diff --git a/src/main/java/me/zinch/commands/Clear.java b/src/main/java/me/zinch/commands/Clear.java
index 72f5cd0..a37d261 100644
--- a/src/main/java/me/zinch/commands/Clear.java
+++ b/src/main/java/me/zinch/commands/Clear.java
@@ -2,6 +2,10 @@ package me.zinch.commands;
import me.zinch.wrapper.ProductCollection;
+/**
+ * The Clear class represents a command to clear a collection.
+ * It extends the Command class.
+ */
public class Clear extends Command {
public Clear() {
super("clear", "очистить коллекцию");
diff --git a/src/main/java/me/zinch/commands/Command.java b/src/main/java/me/zinch/commands/Command.java
index b73b95d..7be2002 100644
--- a/src/main/java/me/zinch/commands/Command.java
+++ b/src/main/java/me/zinch/commands/Command.java
@@ -5,6 +5,9 @@ import me.zinch.wrapper.ProductCollection;
import java.util.regex.Pattern;
+/**
+ * Represents a command that can be executed.
+ */
public abstract class Command {
private final String name;
private final String description;
diff --git a/src/main/java/me/zinch/commands/CommandManager.java b/src/main/java/me/zinch/commands/CommandManager.java
index 90405b7..162591a 100644
--- a/src/main/java/me/zinch/commands/CommandManager.java
+++ b/src/main/java/me/zinch/commands/CommandManager.java
@@ -4,6 +4,9 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
+/**
+ * Manages the registration and retrieval of commands.
+ */
public class CommandManager {
private static final List commandList = new ArrayList<>();
diff --git a/src/main/java/me/zinch/commands/ExecuteScript.java b/src/main/java/me/zinch/commands/ExecuteScript.java
index 633b065..da2dca6 100644
--- a/src/main/java/me/zinch/commands/ExecuteScript.java
+++ b/src/main/java/me/zinch/commands/ExecuteScript.java
@@ -9,6 +9,9 @@ import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
+/**
+ * A command to execute a script from a specified file.
+ */
public class ExecuteScript extends Command {
private static final List executeStack = new ArrayList<>();
diff --git a/src/main/java/me/zinch/commands/Exit.java b/src/main/java/me/zinch/commands/Exit.java
index 0dca810..eed702a 100644
--- a/src/main/java/me/zinch/commands/Exit.java
+++ b/src/main/java/me/zinch/commands/Exit.java
@@ -3,6 +3,9 @@ package me.zinch.commands;
import me.zinch.console.Console;
import me.zinch.wrapper.ProductCollection;
+/**
+ * A command to exit the program without saving to a file.
+ */
public class Exit extends Command {
public Exit() {
super("exit", "завершить программу (без сохранения в файл)");
diff --git a/src/main/java/me/zinch/commands/FilterContainsName.java b/src/main/java/me/zinch/commands/FilterContainsName.java
index 8176005..6a19abb 100644
--- a/src/main/java/me/zinch/commands/FilterContainsName.java
+++ b/src/main/java/me/zinch/commands/FilterContainsName.java
@@ -5,6 +5,9 @@ import me.zinch.wrapper.ProductCollection;
import java.util.regex.Pattern;
+/**
+ * A command to filter elements whose 'name' field contains the specified substring.
+ */
public class FilterContainsName extends Command {
public FilterContainsName() {
super("filter_contains_name name", "вывести элементы, значение поля name которых содержит заданную подстроку", Pattern.compile("^filter_contains_name \\w+"));
diff --git a/src/main/java/me/zinch/commands/Help.java b/src/main/java/me/zinch/commands/Help.java
index de5e820..1764564 100644
--- a/src/main/java/me/zinch/commands/Help.java
+++ b/src/main/java/me/zinch/commands/Help.java
@@ -2,6 +2,9 @@ package me.zinch.commands;
import me.zinch.wrapper.ProductCollection;
+/**
+ * A command to display help for available commands.
+ */
public class Help extends Command {
public Help() {
super("help", "вывести справку по доступным командам");
diff --git a/src/main/java/me/zinch/commands/Info.java b/src/main/java/me/zinch/commands/Info.java
index f8fda66..fee7d01 100644
--- a/src/main/java/me/zinch/commands/Info.java
+++ b/src/main/java/me/zinch/commands/Info.java
@@ -2,6 +2,9 @@ package me.zinch.commands;
import me.zinch.wrapper.ProductCollection;
+/**
+ * A command to display information about the collection (type, initialization date, number of elements, etc.) to the standard output stream.
+ */
public class Info extends Command {
public Info() {
super("info", "вывести в стандартный поток вывода информацию о коллекции (тип, дата инициализации, количество элементов и т.д.)");
diff --git a/src/main/java/me/zinch/commands/PrintAscending.java b/src/main/java/me/zinch/commands/PrintAscending.java
index b8db3ed..9f5c0f9 100644
--- a/src/main/java/me/zinch/commands/PrintAscending.java
+++ b/src/main/java/me/zinch/commands/PrintAscending.java
@@ -2,6 +2,9 @@ package me.zinch.commands;
import me.zinch.wrapper.ProductCollection;
+/**
+ * A command to print the elements of the collection in ascending order.
+ */
public class PrintAscending extends Command {
public PrintAscending() {
super("print_ascending", "вывести элементы коллекции в порядке возрастания");
diff --git a/src/main/java/me/zinch/commands/PrintUniqueManufactureCost.java b/src/main/java/me/zinch/commands/PrintUniqueManufactureCost.java
index 966606c..0156e5b 100644
--- a/src/main/java/me/zinch/commands/PrintUniqueManufactureCost.java
+++ b/src/main/java/me/zinch/commands/PrintUniqueManufactureCost.java
@@ -2,6 +2,9 @@ package me.zinch.commands;
import me.zinch.wrapper.ProductCollection;
+/**
+ * A command to print the unique values of the 'manufactureCost' field of all elements in the collection.
+ */
public class PrintUniqueManufactureCost extends Command {
public PrintUniqueManufactureCost() {
super("print_unique_manufacture_cost", "вывести уникальные значения поля manufactureCost всех элементов в коллекции");
diff --git a/src/main/java/me/zinch/commands/Remove.java b/src/main/java/me/zinch/commands/Remove.java
index 376da1a..c8ed072 100644
--- a/src/main/java/me/zinch/commands/Remove.java
+++ b/src/main/java/me/zinch/commands/Remove.java
@@ -5,6 +5,9 @@ import me.zinch.wrapper.ProductCollection;
import java.util.regex.Pattern;
+/**
+ * A command to remove an element from the collection by its id.
+ */
public class Remove extends Command {
public Remove() {
super("remove_by_id id", "удалить элемент из коллекции по его id", Pattern.compile("^remove_by_id \\d+"));
diff --git a/src/main/java/me/zinch/commands/RemoveLower.java b/src/main/java/me/zinch/commands/RemoveLower.java
index 9a7a2a6..bf06cc2 100644
--- a/src/main/java/me/zinch/commands/RemoveLower.java
+++ b/src/main/java/me/zinch/commands/RemoveLower.java
@@ -5,6 +5,9 @@ import me.zinch.wrapper.ProductCollection;
import java.util.regex.Pattern;
+/**
+ * A command to remove all elements from the collection that have ids lower than the specified id.
+ */
public class RemoveLower extends Command {
public RemoveLower() {
super("remove_lower id", "удалить из коллекции все элементы, меньшие, чем заданный по id", Pattern.compile("^remove_lower \\d+"));
diff --git a/src/main/java/me/zinch/commands/Save.java b/src/main/java/me/zinch/commands/Save.java
index 0ec205b..14c3c7f 100644
--- a/src/main/java/me/zinch/commands/Save.java
+++ b/src/main/java/me/zinch/commands/Save.java
@@ -6,6 +6,9 @@ import me.zinch.wrapper.ProductCollection;
import java.io.IOException;
+/**
+ * A command to save the collection to a file.
+ */
public class Save extends Command {
public Save() {
super("save", "сохранить коллекцию в файл");
diff --git a/src/main/java/me/zinch/commands/Show.java b/src/main/java/me/zinch/commands/Show.java
index 3460ccb..6223901 100644
--- a/src/main/java/me/zinch/commands/Show.java
+++ b/src/main/java/me/zinch/commands/Show.java
@@ -2,6 +2,9 @@ package me.zinch.commands;
import me.zinch.wrapper.ProductCollection;
+/**
+ * A command to display all elements of the collection in string representation to the standard output stream.
+ */
public class Show extends Command {
public Show() {
super("show", "вывести в стандартный поток вывода все элементы коллекции в строковом представлении");
diff --git a/src/main/java/me/zinch/commands/UnknownCommand.java b/src/main/java/me/zinch/commands/UnknownCommand.java
index 2dfe2b5..290e9be 100644
--- a/src/main/java/me/zinch/commands/UnknownCommand.java
+++ b/src/main/java/me/zinch/commands/UnknownCommand.java
@@ -2,6 +2,9 @@ package me.zinch.commands;
import me.zinch.wrapper.ProductCollection;
+/**
+ * Represents an unknown command.
+ */
public class UnknownCommand extends Command {
public UnknownCommand() {
super("", "");
diff --git a/src/main/java/me/zinch/commands/Update.java b/src/main/java/me/zinch/commands/Update.java
index 8a4869c..3301089 100644
--- a/src/main/java/me/zinch/commands/Update.java
+++ b/src/main/java/me/zinch/commands/Update.java
@@ -5,6 +5,9 @@ import me.zinch.wrapper.ProductCollection;
import java.util.regex.Pattern;
+/**
+ * A command to update the value of an element in the collection, whose id is specified.
+ */
public class Update extends Command {
public Update() {
super("update id {element}", "обновить значение элемента коллекции, id которого равен заданному", Pattern.compile("^update \\d+"));
diff --git a/src/main/java/me/zinch/console/Console.java b/src/main/java/me/zinch/console/Console.java
index 6847dcd..a81fef0 100644
--- a/src/main/java/me/zinch/console/Console.java
+++ b/src/main/java/me/zinch/console/Console.java
@@ -18,6 +18,10 @@ import java.util.List;
import java.util.NoSuchElementException;
import java.util.Scanner;
+/**
+ Console class provides methods for interacting with the console, reading user input, and managing application flow.
+ This class includes methods for appending input history, stopping the application, reading product DTO from the console, and running the application loop.
+ */
public class Console {
private static final Scanner scanner = new Scanner(System.in);
private static boolean isRunning = true;
diff --git a/src/main/java/me/zinch/console/ShutdownHook.java b/src/main/java/me/zinch/console/ShutdownHook.java
index 91ca1fd..4f86ad0 100644
--- a/src/main/java/me/zinch/console/ShutdownHook.java
+++ b/src/main/java/me/zinch/console/ShutdownHook.java
@@ -1,5 +1,8 @@
package me.zinch.console;
+/**
+ * Represents a shutdown hook that is executed when the application is stopped.
+ */
public class ShutdownHook extends Thread {
public ShutdownHook() {
super(new Thread(Console::stopApp));
diff --git a/src/main/java/me/zinch/exceptions/CommandActionException.java b/src/main/java/me/zinch/exceptions/CommandActionException.java
index 9b780fb..35b98fa 100644
--- a/src/main/java/me/zinch/exceptions/CommandActionException.java
+++ b/src/main/java/me/zinch/exceptions/CommandActionException.java
@@ -1,5 +1,8 @@
package me.zinch.exceptions;
+/**
+ * Represents an exception that occurs during the execution of a command action.
+ */
public class CommandActionException extends RuntimeException {
public CommandActionException() {
super("Ошибка во время выполнения команды");
diff --git a/src/main/java/me/zinch/exceptions/DbInitializationException.java b/src/main/java/me/zinch/exceptions/DbInitializationException.java
index 1351143..2908270 100644
--- a/src/main/java/me/zinch/exceptions/DbInitializationException.java
+++ b/src/main/java/me/zinch/exceptions/DbInitializationException.java
@@ -2,6 +2,9 @@ package me.zinch.exceptions;
import java.io.IOException;
+/**
+ * Represents an exception that occurs when the database initialization fails.
+ */
public class DbInitializationException extends IOException {
public DbInitializationException() {
super("Ошибка! Не удалось инициализировать БД. Проверьте, что структура БД верна.");
diff --git a/src/main/java/me/zinch/exceptions/IllegalProductDtoException.java b/src/main/java/me/zinch/exceptions/IllegalProductDtoException.java
index e1c780a..e176b20 100644
--- a/src/main/java/me/zinch/exceptions/IllegalProductDtoException.java
+++ b/src/main/java/me/zinch/exceptions/IllegalProductDtoException.java
@@ -1,5 +1,8 @@
package me.zinch.exceptions;
+/**
+ * Represents an exception that occurs when an illegal product DTO is encountered during the creation or modification of a product.
+ */
public class IllegalProductDtoException extends CommandActionException {
public IllegalProductDtoException() {
super("Ошибка при создании или изменении продукта. Были введены некорректные значения.");
diff --git a/src/main/java/me/zinch/exceptions/ValidationException.java b/src/main/java/me/zinch/exceptions/ValidationException.java
index 00b6ab9..adddd6a 100644
--- a/src/main/java/me/zinch/exceptions/ValidationException.java
+++ b/src/main/java/me/zinch/exceptions/ValidationException.java
@@ -1,5 +1,8 @@
package me.zinch.exceptions;
+/**
+ * Represents an exception related to validation errors.
+ */
public class ValidationException extends jakarta.validation.ValidationException {
public ValidationException() {}
diff --git a/src/main/java/me/zinch/files/DbController.java b/src/main/java/me/zinch/files/DbController.java
index 0c18499..c739e07 100644
--- a/src/main/java/me/zinch/files/DbController.java
+++ b/src/main/java/me/zinch/files/DbController.java
@@ -18,6 +18,9 @@ import java.io.OutputStreamWriter;
import java.util.List;
import java.util.Map;
+/**
+ * The DbController class provides methods for loading and saving product data to a database file.
+ */
public class DbController {
private static final XmlMapper xmlMapper = XmlMapper.builder().addModule(new JavaTimeModule()).build();
private static final String path;
@@ -28,6 +31,9 @@ public class DbController {
xmlMapper.setDefaultPropertyInclusion(JsonInclude.Include.NON_NULL);
}
+ /**
+ * Represents a collection of products.
+ */
private static class Products {
@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "Product")
diff --git a/src/main/java/me/zinch/files/ScriptLoader.java b/src/main/java/me/zinch/files/ScriptLoader.java
index 8ec64d3..6de5445 100644
--- a/src/main/java/me/zinch/files/ScriptLoader.java
+++ b/src/main/java/me/zinch/files/ScriptLoader.java
@@ -8,6 +8,9 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
+/**
+ * The ScriptLoader class provides methods to load scripts from files.
+ */
public class ScriptLoader {
public static List loadList(String path) throws IOException {
try {
diff --git a/src/main/java/me/zinch/models/Color.java b/src/main/java/me/zinch/models/Color.java
index c742d73..7c160e1 100644
--- a/src/main/java/me/zinch/models/Color.java
+++ b/src/main/java/me/zinch/models/Color.java
@@ -2,6 +2,9 @@ package me.zinch.models;
import java.util.List;
+/**
+ * Represents a color enumeration.
+ */
public enum Color {
GREEN("Зелёный"),
BLACK("Чёрный"),
diff --git a/src/main/java/me/zinch/models/Coordinates.java b/src/main/java/me/zinch/models/Coordinates.java
index 16c3b6c..4cd2a61 100644
--- a/src/main/java/me/zinch/models/Coordinates.java
+++ b/src/main/java/me/zinch/models/Coordinates.java
@@ -7,6 +7,9 @@ import jakarta.validation.constraints.NotNull;
import java.util.Objects;
+/**
+ * Represents coordinates with x and y values.
+ */
public class Coordinates {
@Max(value = 883, message = "Coordinates: Максимальное значение координаты x: 883")
@JsonProperty("x")
diff --git a/src/main/java/me/zinch/models/Location.java b/src/main/java/me/zinch/models/Location.java
index d2f2ae4..27a78c9 100644
--- a/src/main/java/me/zinch/models/Location.java
+++ b/src/main/java/me/zinch/models/Location.java
@@ -6,6 +6,9 @@ import me.zinch.validator.NotEmpty;
import java.util.Objects;
+/**
+ * Represents a location with x and y coordinates and a name.
+ */
public class Location {
@JsonProperty("x")
private float x;
diff --git a/src/main/java/me/zinch/models/Person.java b/src/main/java/me/zinch/models/Person.java
index 8e55e34..78eb8f3 100644
--- a/src/main/java/me/zinch/models/Person.java
+++ b/src/main/java/me/zinch/models/Person.java
@@ -7,6 +7,9 @@ import jakarta.validation.constraints.Size;
import java.util.Objects;
+/**
+ * Represents a person with a name, passport ID, hair color, and location.
+ */
public class Person {
@NotBlank(message = "Person: Имя персоны не может быть пустым или null")
@JsonProperty("name")
diff --git a/src/main/java/me/zinch/models/Product.java b/src/main/java/me/zinch/models/Product.java
index 48d6fa0..7718e7a 100644
--- a/src/main/java/me/zinch/models/Product.java
+++ b/src/main/java/me/zinch/models/Product.java
@@ -10,6 +10,9 @@ import me.zinch.validator.NotEmpty;
import java.time.ZonedDateTime;
import java.util.Objects;
+/**
+ * Represents a product with various attributes such as ID, name, coordinates, creation date, price, part number, manufacture cost, unit of measure, and owner.
+ */
public class Product {
@NotNull(message = "Product: Поле id не может быть null")
@Min(value = 1, message = "Product: Значение поля id должно быть больше 0")
diff --git a/src/main/java/me/zinch/models/ProductDTO.java b/src/main/java/me/zinch/models/ProductDTO.java
index cbe9b1c..afd68b7 100644
--- a/src/main/java/me/zinch/models/ProductDTO.java
+++ b/src/main/java/me/zinch/models/ProductDTO.java
@@ -11,6 +11,9 @@ import me.zinch.validator.NotEmpty;
import java.time.ZonedDateTime;
+/**
+ * Represents a Data Transfer Object (DTO) for a product with attributes such as name, coordinates, price, part number, manufacture cost, unit of measure, and owner.
+ */
public class ProductDTO {
@NotBlank(message = "Строка name не может быть пустой или null")
@JsonProperty("name")
diff --git a/src/main/java/me/zinch/models/UnitOfMeasure.java b/src/main/java/me/zinch/models/UnitOfMeasure.java
index 43c6fb1..a5b734e 100644
--- a/src/main/java/me/zinch/models/UnitOfMeasure.java
+++ b/src/main/java/me/zinch/models/UnitOfMeasure.java
@@ -2,6 +2,9 @@ package me.zinch.models;
import java.util.List;
+/**
+ * Represents a unit of measure enumeration.
+ */
public enum UnitOfMeasure {
KILOGRAMS("Килограммы"),
CENTIMETERS("Сантиметры"),
diff --git a/src/main/java/me/zinch/validator/NotEmpty.java b/src/main/java/me/zinch/validator/NotEmpty.java
index 04bbb2a..24025ad 100644
--- a/src/main/java/me/zinch/validator/NotEmpty.java
+++ b/src/main/java/me/zinch/validator/NotEmpty.java
@@ -8,6 +8,9 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+/**
+ * Annotation indicating that the annotated element must not be empty.
+ */
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = NotEmptyValidator.class)
diff --git a/src/main/java/me/zinch/validator/NotEmptyValidator.java b/src/main/java/me/zinch/validator/NotEmptyValidator.java
index 21d22b2..b654006 100644
--- a/src/main/java/me/zinch/validator/NotEmptyValidator.java
+++ b/src/main/java/me/zinch/validator/NotEmptyValidator.java
@@ -3,6 +3,9 @@ package me.zinch.validator;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
+/**
+ * Validator implementation for the {@link NotEmpty} annotation, ensuring that the value is not empty.
+ */
public class NotEmptyValidator implements ConstraintValidator {
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
diff --git a/src/main/java/me/zinch/validator/ValidateResult.java b/src/main/java/me/zinch/validator/ValidateResult.java
index b103d98..c508b11 100644
--- a/src/main/java/me/zinch/validator/ValidateResult.java
+++ b/src/main/java/me/zinch/validator/ValidateResult.java
@@ -5,6 +5,10 @@ import jakarta.validation.ValidationException;
import java.util.Set;
+/**
+ * Represents the result of a validation process.
+ * @param the type of object being validated
+ */
public class ValidateResult {
private final Set> violations;
private final boolean isValid;
diff --git a/src/main/java/me/zinch/validator/Validators.java b/src/main/java/me/zinch/validator/Validators.java
index 29e719a..cba1d7a 100644
--- a/src/main/java/me/zinch/validator/Validators.java
+++ b/src/main/java/me/zinch/validator/Validators.java
@@ -8,6 +8,9 @@ import org.hibernate.validator.HibernateValidator;
import java.util.List;
+/**
+ * Utility class for performing validation operations on products.
+ */
public class Validators {
private static final Validator validator;
diff --git a/src/main/java/me/zinch/wrapper/ProductCollection.java b/src/main/java/me/zinch/wrapper/ProductCollection.java
index 36da985..57d62ff 100644
--- a/src/main/java/me/zinch/wrapper/ProductCollection.java
+++ b/src/main/java/me/zinch/wrapper/ProductCollection.java
@@ -16,6 +16,9 @@ import java.util.Optional;
import java.util.Set;
import java.util.TreeSet;
+/**
+ * Represents a collection of products.
+ */
public class ProductCollection {
private final TreeSet productList;
private Long idIncrementor;