chore: refactored APIs to reduce coupling #6
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.

This pull request refactors the path processing and printing components to improve modularity and code clarity by introducing new interfaces and a factory class. The changes replace concrete class references with interface-based abstractions, making the codebase more extensible and maintainable. Additionally, several classes were moved into a new package structure for better organization.
API Abstraction and Interface Implementation
DotPathandDotPrinterinterfaces insrc/main/java/io/github/trackerforce/path/api/, defining common APIs for path processing and JSON printing, respectively. Existing classes likePathCommonandPathPrinternow implement these interfaces. [1] [2] [3] [4] [5]Factory Pattern and Dependency Injection
DotPathFactoryclass to centralize the creation ofDotPathandDotPrinterinstances, replacing direct instantiation with factory methods. This improves dependency management and testability. [1] [2]Package and File Structure Organization
PathCommon,PathExclude,PathFilter,PathPrinter,ExclusionNode) to the newio.github.trackerforce.pathpackage, improving codebase structure and separation of concerns. [1] [2] [3] [4] [5] [6]Refactoring for Interface Usage
DotPathQLto useDotPathandDotPrinterinterfaces instead of concrete classes, and to obtain instances viaDotPathFactory, further decoupling implementation details from usage. [1] [2]These changes collectively enhance the flexibility and maintainability of the path processing and printing logic in the codebase.