Skip to content

Docs improvements#103

Open
mlopezFC wants to merge 7 commits intomasterfrom
docs-improvements
Open

Docs improvements#103
mlopezFC wants to merge 7 commits intomasterfrom
docs-improvements

Conversation

@mlopezFC
Copy link
Member

@mlopezFC mlopezFC commented May 22, 2025

Summary by CodeRabbit

  • Documentation
    • README extensively rewritten and reorganized with product description, features, prerequisites, build and dependency instructions, documentation generation, module overview, examples, licensing, and contribution guidance.
    • Expanded and added Javadoc across many public interfaces, classes, enums, and exceptions to clarify intent, type parameters, and usage without changing behavior or public APIs.

@mlopezFC mlopezFC requested a review from javier-godoy May 22, 2025 17:29
@coderabbitai
Copy link

coderabbitai bot commented May 22, 2025

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Rewrote README.md with expanded documentation and added Javadoc comments across many backend-core modules; one interface (JpaDaoSupport) also gained two default identity conversion methods. No other logic, method signatures, or public API behavior were changed.

Changes

Cohort / File(s) Summary
Documentation
README.md
Complete rewrite and expansion of project README: product description, features, prerequisites, build-from-source, doc generation, module list, Maven snippets, contributing, license, and release/issue guidance.
Service validation (business impl)
backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/CreationValidator.java, backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/DeletionValidator.java, backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/InvariantValidator.java, backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/ServiceValidationKind.java, backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/UpdateValidator.java
Added Javadoc to validator interfaces and enum documenting purpose, generic parameters, and authorship; no behavioral changes.
Spring / JPA support
backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java, backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java, backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.java, backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/JpaDaoSupport.java
Added Javadoc documenting Specification, transformer, and DAO support types. JpaDaoSupport also gained two default identity conversion methods (convertFrom, convertTo) returning the source.
DAO interfaces (core data)
backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CreationDao.java, backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CrudDao.java, backend-core-data/src/main/java/com/flowingcode/backendcore/dao/DeletionDao.java, backend-core-data/src/main/java/com/flowingcode/backendcore/dao/QueryDao.java, backend-core-data/src/main/java/com/flowingcode/backendcore/dao/UpdateDao.java
Added Javadoc to CRUD DAO interfaces describing roles and generic parameters; no signature or logic changes.
Model constraints
backend-core-model/src/main/java/com/flowingcode/backendcore/model/Constraint.java, backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/*
Added Javadoc to Constraint and multiple constraint classes/interfaces (e.g., AttributeBetweenConstraint, AttributeILikeConstraint, AttributeInConstraint, AttributeLikeConstraint, AttributeNullConstraint, AttributeRelationalConstraint, AttributeConstraint, RelationalConstraint, NegatedConstraint) documenting intent and authorship; no behavior changes.
Validation exceptions & support
backend-core-model/src/main/java/com/flowingcode/backendcore/validation/CreationValidationException.java, backend-core-model/src/main/java/com/flowingcode/backendcore/validation/DeletionValidationException.java, backend-core-model/src/main/java/com/flowingcode/backendcore/validation/UpdateValidationException.java, backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationKind.java, backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationSupport.java
Added Javadoc to validation exception classes and support interfaces documenting usage and generics; no functional changes.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'Docs improvements' is vague and generic, using non-descriptive terminology that fails to convey meaningful information about the specific changes in the changeset. Consider revising the title to be more specific about the documentation changes, such as 'Add Javadoc to model layer interfaces and exceptions' or 'Update README and add Javadoc documentation'.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs-improvements
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (7)
backend-core-data/src/main/java/com/flowingcode/backendcore/dao/UpdateDao.java (1)

22-27: Optional: Add @since annotation
If your project tracks API evolution, consider adding an @since <version> tag to indicate when this interface was introduced or last modified.

backend-core-data/src/main/java/com/flowingcode/backendcore/dao/DeletionDao.java (1)

22-27: Optional: Add @since annotation
Consider including an @since <version> tag to track when DeletionDao was introduced or last updated in the API.

backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeRelationalConstraint.java (1)

28-32: Optional: Document constructor parameters
Since this class relies on Lombok’s @RequiredArgsConstructor, it’s helpful to add @param attribute, @param value, and @param operator tags in the Javadoc (either at the class or constructor level) to document these parameters explicitly.

backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeLikeConstraint.java (1)

28-32: Optional: Add @param tags for constructor fields
To improve clarity, include @param attribute and @param pattern tags for the Lombok-generated constructor parameters.

backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeILikeConstraint.java (2)

28-32: Optional: Document constructor parameters
Consider adding @param attribute and @param pattern tags to the class- or constructor-level Javadoc to describe the Lombok-generated constructor arguments.


38-39: Inconsistent indentation style
This class’s fields are indented with two spaces, whereas other constraint classes use tabs. Please align with the project’s tab-based indentation for consistency.

README.md (1)

17-17: Refine compound-adjective hyphenation

Consider removing the hyphen in “Strongly-typed filtering and query support” (e.g., use “strongly typed filtering and query support”) for consistency and readability.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~17-~17: The hyphen in Strongly-typed is redundant.
Context: ...D interfaces and base implementations - Strongly-typed filtering and query support - Reusable ...

(ADVERB_LY_HYPHEN_FIX)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between dcb17af and 93fb78f.

📒 Files selected for processing (30)
  • README.md (1 hunks)
  • backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/CreationValidator.java (1 hunks)
  • backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/DeletionValidator.java (1 hunks)
  • backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/InvariantValidator.java (1 hunks)
  • backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/ServiceValidationKind.java (1 hunks)
  • backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/UpdateValidator.java (1 hunks)
  • backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java (1 hunks)
  • backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java (1 hunks)
  • backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.java (1 hunks)
  • backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/JpaDaoSupport.java (1 hunks)
  • backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CreationDao.java (1 hunks)
  • backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CrudDao.java (1 hunks)
  • backend-core-data/src/main/java/com/flowingcode/backendcore/dao/DeletionDao.java (1 hunks)
  • backend-core-data/src/main/java/com/flowingcode/backendcore/dao/QueryDao.java (1 hunks)
  • backend-core-data/src/main/java/com/flowingcode/backendcore/dao/UpdateDao.java (1 hunks)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/Constraint.java (1 hunks)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeBetweenConstraint.java (1 hunks)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.java (1 hunks)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeILikeConstraint.java (1 hunks)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeInConstraint.java (1 hunks)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeLikeConstraint.java (1 hunks)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeNullConstraint.java (1 hunks)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeRelationalConstraint.java (1 hunks)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/NegatedConstraint.java (1 hunks)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/RelationalConstraint.java (1 hunks)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/validation/CreationValidationException.java (1 hunks)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/validation/DeletionValidationException.java (1 hunks)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/validation/UpdateValidationException.java (1 hunks)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationKind.java (1 hunks)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationSupport.java (1 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[misspelling] ~12-~12: This word is normally spelled as one.
Context: ...s-impl) - **Spring Boot integration**: auto-configuration support (backend-core-business-spring-...

(EN_COMPOUNDS_AUTO_CONFIGURATION)


[uncategorized] ~17-~17: The hyphen in Strongly-typed is redundant.
Context: ...D interfaces and base implementations - Strongly-typed filtering and query support - Reusable ...

(ADVERB_LY_HYPHEN_FIX)


[misspelling] ~55-~55: This word is normally spelled as one.
Context: ...core-business-spring-impl`| Spring Boot auto-configuration for services and repositories ...

(EN_COMPOUNDS_AUTO_CONFIGURATION)

🔇 Additional comments (30)
backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeInConstraint.java (1)

30-34: Well-written class Javadoc for AttributeInConstraint.
The added documentation clearly explains the purpose of this constraint and includes the author attribution.

backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeNullConstraint.java (1)

9-13: Clear and concise Javadoc for AttributeNullConstraint.
The description correctly states the intent of the constraint and the author tag is present.

backend-core-model/src/main/java/com/flowingcode/backendcore/validation/UpdateValidationException.java (1)

8-12: Appropriate Javadoc for UpdateValidationException.
The documentation accurately conveys when this exception is thrown, and the author tag is consistent.

backend-core-model/src/main/java/com/flowingcode/backendcore/validation/DeletionValidationException.java (1)

8-12: Good Javadoc addition to DeletionValidationException.
The comment succinctly explains the class’s role and includes the author attribution.

backend-core-model/src/main/java/com/flowingcode/backendcore/model/Constraint.java (1)

24-28: Solid documentation for the Constraint interface.
The new Javadoc clarifies the interface’s purpose and includes the author tag, matching the project’s style.

backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.java (1)

24-28: Well-structured Javadoc comment

The added documentation clearly explains the purpose of this marker interface and follows standard Javadoc conventions.

backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/NegatedConstraint.java (1)

30-34: Clear and concise Javadoc

The added documentation effectively communicates the purpose of this constraint class and follows proper Javadoc conventions.

backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeBetweenConstraint.java (1)

29-33: Informative Javadoc with clear semantics

The added documentation clearly explains the purpose of this constraint class and importantly specifies that the bounds are inclusive, which is valuable information for users of this class.

backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/RelationalConstraint.java (1)

24-28: Precise Javadoc for interface purpose

The added documentation effectively describes the purpose of this interface as defining relational operators for constraints, which helps developers understand its role in the constraint hierarchy.

backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CreationDao.java (1)

22-28: Thorough Javadoc with well-documented type parameters

The added documentation clearly explains the purpose of this DAO interface and provides valuable descriptions of both type parameters, which is particularly helpful for generic interfaces.

backend-core-data/src/main/java/com/flowingcode/backendcore/dao/UpdateDao.java (1)

22-27: Well-documented Javadoc for UpdateDao
The new Javadoc succinctly describes the interface’s purpose and correctly includes the generic <T> parameter.

backend-core-data/src/main/java/com/flowingcode/backendcore/dao/DeletionDao.java (1)

22-27: Well-documented Javadoc for DeletionDao
The added comment clearly explains the interface’s role and includes the generic type parameter tag.

backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeRelationalConstraint.java (1)

28-32: Descriptive Javadoc for AttributeRelationalConstraint
The block accurately conveys the class’s purpose and includes the author tag.

backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeLikeConstraint.java (1)

28-32: Descriptive Javadoc for AttributeLikeConstraint
The new comment correctly explains the SQL LIKE behavior and includes the author.

backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeILikeConstraint.java (1)

28-32: Descriptive Javadoc for AttributeILikeConstraint
The added Javadoc clearly explains the case-insensitive pattern matching role and includes the author.

backend-core-data/src/main/java/com/flowingcode/backendcore/dao/QueryDao.java (1)

27-33: Well-written interface-level Javadoc.

The new Javadoc succinctly captures the role of QueryDao and correctly documents the generic type parameters. The formatting and tags align with project conventions.

backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CrudDao.java (1)

22-28: Clear and consistent CRUD interface documentation.

The added Javadoc accurately describes CrudDao’s combined responsibilities and the generic parameters. It matches the style of the other DAO interfaces.

backend-core-model/src/main/java/com/flowingcode/backendcore/validation/CreationValidationException.java (1)

8-12: Accurate exception Javadoc.

The class-level comment clearly states the purpose of CreationValidationException and includes the author tag. Placement before the @SuppressWarnings is correct.

backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/ServiceValidationKind.java (1)

9-13: Descriptive enum-level Javadoc.

This Javadoc effectively explains the intent of ServiceValidationKind. It’s consistent with the newly documented validator interfaces.

backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationKind.java (1)

4-8: Concise interface documentation.

The Javadoc for ValidationKind clearly defines its purpose and author. The use of a single-sentence summary is appropriate for this simple interface.

backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/UpdateValidator.java (1)

31-36: Well-structured Javadoc documentation for UpdateValidator
The newly added Javadoc correctly describes the purpose of the interface, includes a <T> parameter description, and attributes authorship. It aligns with the existing documentation style across related validator interfaces.

backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java (1)

16-21: Clear and consistent Javadoc for ConstraintSpecification
The Javadoc block accurately explains the class’s role as a Spring Data JPA Specification applying a model Constraint, properly references the generic type, and includes an author tag. It maintains consistency with the broader documentation improvements.

backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/CreationValidator.java (1)

31-36: Comprehensive Javadoc for CreationValidator
The added documentation concisely covers the interface’s intent for creation operations, includes the generic parameter, and correctly lists the author. It matches the style of sibling validator interfaces.

backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java (1)

47-51: Accurate Javadoc for ConstraintTransformerJpaImpl
The new Javadoc block clearly states this class’s role as the JPA implementation of ConstraintTransformer, references the correct return type, and includes the author tag. It’s consistent with related DAO and transformer documentation.

backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/InvariantValidator.java (1)

13-18: Precise Javadoc for InvariantValidator
The Javadoc succinctly explains that this interface enforces invariants for both creation and update operations, includes the <T> parameter, and lists the author. It aligns with the documentation conventions used throughout the validator package.

backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/DeletionValidator.java (1)

31-36: Well-formed Javadoc for DeletionValidator

The added Javadoc block clearly describes the purpose of DeletionValidator<T>, includes a <T> param description, and attributes authorship. It aligns with the style of other validator interfaces—no further changes needed here.

backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationSupport.java (1)

26-31: Clear Javadoc for ValidationSupport

The new documentation succinctly explains the interface’s role and type parameter, and the author tag is consistent with project conventions. Everything looks good.

backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.java (1)

42-49: Descriptive Javadoc for ConversionJpaDaoSupport

The interface-level Javadoc accurately outlines type parameters <S>, <T>, <K> and the interface’s responsibilities. Authorship is noted correctly. No functional impact observed.

backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/JpaDaoSupport.java (1)

26-32: Consistent Javadoc for JpaDaoSupport

The added documentation clearly states the interface’s purpose, type parameters, and author. It matches the style of related DAO support interfaces.

README.md (1)

1-110: Comprehensive README improvements

The expanded README offers a well-structured overview, detailed usage instructions, module breakdown, build steps, and contribution guidelines. The additions greatly enhance project onboarding and align with the enriched Javadoc across the codebase.

🧰 Tools
🪛 LanguageTool

[misspelling] ~12-~12: This word is normally spelled as one.
Context: ...s-impl) - **Spring Boot integration**: auto-configuration support (backend-core-business-spring-...

(EN_COMPOUNDS_AUTO_CONFIGURATION)


[uncategorized] ~17-~17: The hyphen in Strongly-typed is redundant.
Context: ...D interfaces and base implementations - Strongly-typed filtering and query support - Reusable ...

(ADVERB_LY_HYPHEN_FIX)


[misspelling] ~55-~55: This word is normally spelled as one.
Context: ...core-business-spring-impl`| Spring Boot auto-configuration for services and repositories ...

(EN_COMPOUNDS_AUTO_CONFIGURATION)

import com.flowingcode.backendcore.model.Constraint;

/**
* Marker interface for constraints applied to entity attributes.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A marker interface is an interface with no methods or fields.

This would be a "Specialization of {@code Constraint} that applies to entity attributes."

import lombok.RequiredArgsConstructor;

/**
* JPA implementation of {@link com.flowingcode.backendcore.model.ConstraintTransformer} for converting model constraints into JPA {@link jakarta.persistence.criteria.Predicate} instances.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The following identifiers must never be linked and should always be wrapped in {@code}:

import lombok.RequiredArgsConstructor;

/**
* Spring Data JPA {@link org.springframework.data.jpa.domain.Specification} that applies a model {@link com.flowingcode.backendcore.model.Constraint}.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The following identifiers must never be linked and should always be wrapped in {@code}:

README.md Outdated
5. Send a pull request and comment on the issue once it's ready.

# Developer Guide
## License
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Author is omitted

mlopezFC pushed a commit that referenced this pull request May 23, 2025
This commit addresses the feedback provided by javier-godoy on PR #103:

- Updated Javadoc for `AttributeConstraint.java` to clarify it as a specialization of `Constraint`.
- Updated Javadoc for `ConstraintTransformerJpaImpl.java` and `ConstraintSpecification.java` to use `{@code}` for supertypes and implemented interfaces, as per FlowingCode development conventions.
- Added author information to the License section in README.md.
mlopezFC pushed a commit that referenced this pull request May 24, 2025
This commit addresses the feedback provided by javier-godoy on PR #103:

- Updated Javadoc for `AttributeConstraint.java` to clarify it as a
specialization of `Constraint`.
- Updated Javadoc for `ConstraintTransformerJpaImpl.java` and
`ConstraintSpecification.java` to use `{@code}` for supertypes and
implemented interfaces, as per FlowingCode development conventions.
- Added author information to the License section in README.md.
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (5)
README.md (5)

5-5: Refine project tagline for clarity

Consider adding an article and clarifying the scope. For example:

- Common utilities for backend enterprise application development.
+ A collection of utilities for enterprise backend application development.

16-20: Unify hyphenation in feature list

Remove the hyphen in “Strongly-typed” to match the adverb–adjective pattern. For example:

- - Strongly-typed filtering and query support
+ - Strongly typed filtering and query support
🧰 Tools
🪛 LanguageTool

[uncategorized] ~17-~17: The hyphen in Strongly-typed is redundant.
Context: ...D interfaces and base implementations - Strongly-typed filtering and query support - Reusable ...

(ADVERB_LY_HYPHEN_FIX)


60-66: Clarify placeholder comment in dependency snippet

The comment might confuse users since <artifactId> is also an XML tag. Consider rewording:

- <!-- Replace <artifactId> with the module(s) you need -->
+ <!-- Replace the <artifactId> tag content with the module(s) you need -->

97-106: Enhance contribution guidelines with Code of Conduct and CLA

Consider adding steps to reference the project's Code of Conduct and any Contributor License Agreement. For example:

 5. Send a pull request and comment on the issue once it's ready.
+ 6. Review and adhere to the Code of Conduct (`CODE_OF_CONDUCT.md`).
+ 7. Sign the Contributor License Agreement (CLA) if applicable.

109-109: Specify the article for the Apache License

Include “the” before Apache License 2.0 for grammatical accuracy:

- This library is distributed under Apache License 2.0. For license terms, see LICENSE.txt.
+ This library is distributed under the Apache License 2.0. For license terms, see LICENSE.txt.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~109-~109: You might be missing the article “the” here.
Context: ...thor This library is distributed under Apache License 2.0. For license terms, see LIC...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 93fb78f and 6646f54.

📒 Files selected for processing (4)
  • README.md (1 hunks)
  • backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java (1 hunks)
  • backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java (1 hunks)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.java (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.java
  • backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java
  • backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java
🧰 Additional context used
🪛 LanguageTool
README.md

[misspelling] ~12-~12: This word is normally spelled as one.
Context: ...s-impl) - **Spring Boot integration**: auto-configuration support (backend-core-business-spring-...

(EN_COMPOUNDS_AUTO_CONFIGURATION)


[uncategorized] ~17-~17: The hyphen in Strongly-typed is redundant.
Context: ...D interfaces and base implementations - Strongly-typed filtering and query support - Reusable ...

(ADVERB_LY_HYPHEN_FIX)


[misspelling] ~55-~55: This word is normally spelled as one.
Context: ...core-business-spring-impl`| Spring Boot auto-configuration for services and repositories ...

(EN_COMPOUNDS_AUTO_CONFIGURATION)


[uncategorized] ~109-~109: You might be missing the article “the” here.
Context: ...thor This library is distributed under Apache License 2.0. For license terms, see LIC...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[uncategorized] ~110-~110: You might be missing the article “the” here.
Context: ...0. For license terms, see LICENSE.txt. Backend Core is written by Flowing Code S.A.

(AI_EN_LECTOR_MISSING_DETERMINER_THE)

🔇 Additional comments (11)
README.md (11)

1-1: License badge usage looks good

The Apache 2.0 license badge is correctly formatted and links to LICENSE.txt.


7-7: Overview wording is clear

The introduction accurately describes the modular libraries and clean architecture focus.


9-12: Module list is comprehensive and clear

The bullet list correctly enumerates the core modules with concise descriptions.

🧰 Tools
🪛 LanguageTool

[misspelling] ~12-~12: This word is normally spelled as one.
Context: ...s-impl) - **Spring Boot integration**: auto-configuration support (backend-core-business-spring-...

(EN_COMPOUNDS_AUTO_CONFIGURATION)


26-27: Prerequisites section is clear

The Java and Maven version requirements are appropriately specified.


32-34: Build instructions are straightforward

The git clone and Maven install steps are clear and correct.


40-42: Documentation generation steps are correct

The mvn site command and instructions align with standard Maven practices.


48-55: Module table formatting is effective

The Markdown table clearly outlines each module and its purpose.

🧰 Tools
🪛 LanguageTool

[misspelling] ~55-~55: This word is normally spelled as one.
Context: ...core-business-spring-impl`| Spring Boot auto-configuration for services and repositories ...

(EN_COMPOUNDS_AUTO_CONFIGURATION)


70-77: Snapshot repository snippet is correct

The configuration for accessing snapshot artifacts looks accurate.


86-87: Documentation reference links are valid

The links to the Maven Site and design markdown docs are well-placed.


89-90: Release notes section is concise

Linking to GitHub releases provides users quick access to changelogs.


93-96: Issue tracking instructions are clear

Guidance to report bugs via GitHub Issues is straightforward.

Copy link
Member

@javier-godoy javier-godoy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation changes look good. Please ensure the commit message aligns with our Commit Message Guidelines.

@mlopezFC mlopezFC force-pushed the docs-improvements branch from 6646f54 to ef89fc3 Compare May 26, 2025 17:37
@sonarqubecloud
Copy link

@mlopezFC
Copy link
Member Author

The documentation changes look good. Please ensure the commit message aligns with our Commit Message Guidelines.

I've improved the commit messages, can you give this a final look?

@mlopezFC mlopezFC requested a review from javier-godoy May 26, 2025 17:38
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (4)
README.md (4)

7-7: Consider linking to Clean Architecture resources
To aid new users, consider adding a hyperlink or brief definition for “clean architecture” (e.g., reference Uncle Bob’s Clean Architecture).


29-30: Add version checkout step to build instructions
It may be helpful to instruct users to check out a specific release tag or branch before building. For example:

git clone https://github.com/FlowingCode/backend-core.git
cd backend-core
git checkout v1.1.0-SNAPSHOT   # or desired tag
mvn clean install

31-35: Clarify build command context
Consider clarifying that the build commands should be run from the project root. Optionally, you can combine clone and install steps:

git clone https://github.com/FlowingCode/backend-core.git && \
cd backend-core && \
mvn clean install

109-111: Consistent article usage in License & Author section
You may want to add “the” before “Apache License 2.0” and clarify authorship. For example:

This library is distributed under the Apache License 2.0. For license terms, see LICENSE.txt.

Backend Core is developed and maintained by Flowing Code S.A.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~109-~109: You might be missing the article “the” here.
Context: ...thor This library is distributed under Apache License 2.0. For license terms, see LIC...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[uncategorized] ~110-~110: You might be missing the article “the” here.
Context: ...0. For license terms, see LICENSE.txt. Backend Core is written by Flowing Code S.A.

(AI_EN_LECTOR_MISSING_DETERMINER_THE)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6646f54 and ef89fc3.

📒 Files selected for processing (4)
  • README.md (1 hunks)
  • backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java (1 hunks)
  • backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java (1 hunks)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.java (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java
🚧 Files skipped from review as they are similar to previous changes (2)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.java
  • backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java
🧰 Additional context used
🪛 LanguageTool
README.md

[misspelling] ~12-~12: This word is normally spelled as one.
Context: ...s-impl) - **Spring Boot integration**: auto-configuration support (backend-core-business-spring-...

(EN_COMPOUNDS_AUTO_CONFIGURATION)


[uncategorized] ~17-~17: The hyphen in Strongly-typed is redundant.
Context: ...D interfaces and base implementations - Strongly-typed filtering and query support - Reusable ...

(ADVERB_LY_HYPHEN_FIX)


[misspelling] ~55-~55: This word is normally spelled as one.
Context: ...core-business-spring-impl`| Spring Boot auto-configuration for services and repositories ...

(EN_COMPOUNDS_AUTO_CONFIGURATION)


[uncategorized] ~109-~109: You might be missing the article “the” here.
Context: ...thor This library is distributed under Apache License 2.0. For license terms, see LIC...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[uncategorized] ~110-~110: You might be missing the article “the” here.
Context: ...0. For license terms, see LICENSE.txt. Backend Core is written by Flowing Code S.A.

(AI_EN_LECTOR_MISSING_DETERMINER_THE)

🔇 Additional comments (18)
README.md (18)

5-5: Looks good.


37-38: Looks good.


39-42: Looks good.


44-44: Looks good.


48-56: Looks good.

🧰 Tools
🪛 LanguageTool

[misspelling] ~55-~55: This word is normally spelled as one.
Context: ...core-business-spring-impl`| Spring Boot auto-configuration for services and repositories ...

(EN_COMPOUNDS_AUTO_CONFIGURATION)


57-57: Looks good.


59-66: Looks good.


68-68: Looks good.


80-80: Looks good.


89-89: Looks good.


91-91: Looks good.


93-96: Looks good.


97-98: Looks good.


99-99: Looks good.


101-106: Looks good.


107-108: Looks good.


84-87:

Details

✅ Verification successful

Verify documentation file paths
Confirm that the referenced design documentation file exists at src/site/markdown/index.md:


🏁 Script executed:

#!/bin/bash
# Verify design documentation source
if [[ ! -f src/site/markdown/index.md ]]; then
  echo "Error: src/site/markdown/index.md not found"
  exit 1
else
  echo "Design documentation exists"
fi

Length of output: 104


Design documentation path verified

The referenced file src/site/markdown/index.md exists as expected, so no changes are needed to the README.


1-2:

Details

✅ Verification successful

Verify the license badge link
Ensure that the LICENSE.txt file exists at the repository root and that the badge URL points to the correct license file.


🏁 Script executed:

#!/bin/bash
# Verify LICENSE.txt existence
if [[ ! -f LICENSE.txt ]]; then
  echo "Error: LICENSE.txt not found in repository root"
  exit 1
else
  echo "LICENSE.txt exists"
fi

Length of output: 71


License badge link verified
LICENSE.txt exists at the repository root, and the badge URL correctly points to it. No further changes needed.

Copy link
Member

@javier-godoy javier-godoy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please review that the commits are atomic.

  • First changeset
    docs: add missing javadocs
    docs: replace @link with @code
    docs: fix the javadoc with a better description of the interface
  • Second changeset
    docs: improve the license section
    docs: improve README.md

@mlopezFC mlopezFC force-pushed the docs-improvements branch from 0b0f80d to d977b36 Compare March 18, 2026 21:52
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@mlopezFC mlopezFC force-pushed the docs-improvements branch from d977b36 to 8e47275 Compare March 18, 2026 21:54
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
README.md (1)

73-73: ⚠️ Potential issue | 🟡 Minor

Use the canonical snapshots URL to avoid redirect hops.

Line 73 should use a trailing slash (.../snapshots/) to avoid an unnecessary 301 on repository resolution.

🔧 Suggested fix
-  <url>https://maven.flowingcode.com/snapshots</url>
+  <url>https://maven.flowingcode.com/snapshots/</url>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 73, The repository README contains the Maven snapshots
repository URL literal "<url>https://maven.flowingcode.com/snapshots</url>"
which lacks a trailing slash and causes a 301 redirect; update that URL to
include the trailing slash (https://maven.flowingcode.com/snapshots/) so the
canonical snapshots URL is used and repository resolution avoids the redirect.
🧹 Nitpick comments (3)
backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationKind.java (1)

4-8: Keep this contract description layer-agnostic.

ValidationKind sits in the shared validation module and only exposes a validator type, so calling out "service validation steps" makes the API sound narrower than it is.

✏️ Possible wording
- * Defines the type of validator used for service validation steps.
+ * Defines the validator type associated with a validation step.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationKind.java`
around lines 4 - 8, The Javadoc on ValidationKind is service-specific; make it
layer-agnostic by replacing "Defines the type of validator used for service
validation steps." with a neutral description such as "Defines the kinds/types
of validators used in validation processes" (or similar) so the API reads as
shared/shared-module-appropriate; update the comment on the ValidationKind
enum/class to remove "service" and ensure the author tag and general formatting
remain unchanged.
backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.java (1)

42-49: Document the getPersistentClass() assumption in the interface summary.

This type exposes query helpers in addition to CRUD, and its default getPersistentClass() only works when implementations surface concrete generic parameters directly. That contract is easy to miss from the current Javadoc.

✏️ Possible wording
- * DAO support interface that converts between source domain type S and persistent entity type T and provides generic CRUD operations.
+ * DAO support interface that converts between source domain type S and persistent entity type T and provides generic CRUD and query operations.
+ * Implementations should either expose concrete generic parameters directly through this interface
+ * (or {`@link` JpaDaoSupport}) or override {`@link` `#getPersistentClass`()}.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.java`
around lines 42 - 49, Update the Javadoc summary of ConversionJpaDaoSupport to
explicitly document the assumption behind getPersistentClass(): state that the
default implementation of getPersistentClass() requires that implementing
classes declare concrete generic type arguments for S and T (i.e., the
implementation must surface concrete generic parameters at the class level) and
will not reliably work for implementations that use type variables, raw types,
or perform generic parameterization at runtime; reference the
getPersistentClass() method by name in the comment so callers know the contract
and limitations.
backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/JpaDaoSupport.java (1)

27-30: Clarify the contract for identity-only mapping.

Lines 27-30 should explicitly state this interface is intended for cases where domain and persistence types are the same (S == T), and that mapped conversions belong in ConversionJpaDaoSupport<S, T, K>.

💡 Suggested Javadoc tweak
 /**
- * DAO support interface for JPA entities, providing default identity conversions.
+ * DAO support interface for JPA entities when domain and persistent types are the same,
+ * providing default identity conversions.
+ * For non-identity mappings, use {`@link` ConversionJpaDaoSupport}.
  *
  * `@param` <T> the persistent entity type
  * `@param` <K> the identifier type
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/JpaDaoSupport.java`
around lines 27 - 30, Update the Javadoc for the JpaDaoSupport interface to
explicitly state it is intended only for identity mapping cases where domain and
persistence types are identical (S == T) and that any non-identity conversions
belong in ConversionJpaDaoSupport<S, T, K>; mention that JpaDaoSupport provides
default identity conversions and point callers to ConversionJpaDaoSupport for
mapping logic.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@README.md`:
- Line 86: Remove the broken repository link to the generated artifact
'target/site/index.html' in README.md and replace it with either (a) a
plain-text instruction to generate and view the site locally (e.g., "Run 'mvn
site' and open 'target/site/index.html'") or (b) a link to the published
documentation URL; locate the entry referencing target/site/index.html in
README.md and update the line accordingly.

---

Duplicate comments:
In `@README.md`:
- Line 73: The repository README contains the Maven snapshots repository URL
literal "<url>https://maven.flowingcode.com/snapshots</url>" which lacks a
trailing slash and causes a 301 redirect; update that URL to include the
trailing slash (https://maven.flowingcode.com/snapshots/) so the canonical
snapshots URL is used and repository resolution avoids the redirect.

---

Nitpick comments:
In
`@backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.java`:
- Around line 42-49: Update the Javadoc summary of ConversionJpaDaoSupport to
explicitly document the assumption behind getPersistentClass(): state that the
default implementation of getPersistentClass() requires that implementing
classes declare concrete generic type arguments for S and T (i.e., the
implementation must surface concrete generic parameters at the class level) and
will not reliably work for implementations that use type variables, raw types,
or perform generic parameterization at runtime; reference the
getPersistentClass() method by name in the comment so callers know the contract
and limitations.

In
`@backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/JpaDaoSupport.java`:
- Around line 27-30: Update the Javadoc for the JpaDaoSupport interface to
explicitly state it is intended only for identity mapping cases where domain and
persistence types are identical (S == T) and that any non-identity conversions
belong in ConversionJpaDaoSupport<S, T, K>; mention that JpaDaoSupport provides
default identity conversions and point callers to ConversionJpaDaoSupport for
mapping logic.

In
`@backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationKind.java`:
- Around line 4-8: The Javadoc on ValidationKind is service-specific; make it
layer-agnostic by replacing "Defines the type of validator used for service
validation steps." with a neutral description such as "Defines the kinds/types
of validators used in validation processes" (or similar) so the API reads as
shared/shared-module-appropriate; update the comment on the ValidationKind
enum/class to remove "service" and ensure the author tag and general formatting
remain unchanged.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 150f23f8-c71b-4bde-aaac-f490651d4dbd

📥 Commits

Reviewing files that changed from the base of the PR and between 0b0f80d and d977b36.

📒 Files selected for processing (30)
  • README.md
  • backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/CreationValidator.java
  • backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/DeletionValidator.java
  • backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/InvariantValidator.java
  • backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/ServiceValidationKind.java
  • backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/UpdateValidator.java
  • backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java
  • backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java
  • backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConversionJpaDaoSupport.java
  • backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/JpaDaoSupport.java
  • backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CreationDao.java
  • backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CrudDao.java
  • backend-core-data/src/main/java/com/flowingcode/backendcore/dao/DeletionDao.java
  • backend-core-data/src/main/java/com/flowingcode/backendcore/dao/QueryDao.java
  • backend-core-data/src/main/java/com/flowingcode/backendcore/dao/UpdateDao.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/Constraint.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeBetweenConstraint.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeConstraint.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeILikeConstraint.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeInConstraint.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeLikeConstraint.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeNullConstraint.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeRelationalConstraint.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/NegatedConstraint.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/RelationalConstraint.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/validation/CreationValidationException.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/validation/DeletionValidationException.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/validation/UpdateValidationException.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationKind.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationSupport.java
✅ Files skipped from review due to trivial changes (2)
  • backend-core-model/src/main/java/com/flowingcode/backendcore/validation/UpdateValidationException.java
  • backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/DeletionValidator.java
🚧 Files skipped from review as they are similar to previous changes (18)
  • backend-core-business-spring-impl/src/main/java/com/flowingcode/backendcore/service/ConstraintSpecification.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/RelationalConstraint.java
  • backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/InvariantValidator.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeILikeConstraint.java
  • backend-core-data/src/main/java/com/flowingcode/backendcore/dao/DeletionDao.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeBetweenConstraint.java
  • backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CrudDao.java
  • backend-core-data-impl/src/main/java/com/flowingcode/backendcore/dao/jpa/ConstraintTransformerJpaImpl.java
  • backend-core-business-impl/src/main/java/com/flowingcode/backendcore/service/validation/UpdateValidator.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeLikeConstraint.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeInConstraint.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/Constraint.java
  • backend-core-data/src/main/java/com/flowingcode/backendcore/dao/UpdateDao.java
  • backend-core-data/src/main/java/com/flowingcode/backendcore/dao/QueryDao.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/validation/ValidationSupport.java
  • backend-core-data/src/main/java/com/flowingcode/backendcore/dao/CreationDao.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/model/constraints/AttributeNullConstraint.java
  • backend-core-model/src/main/java/com/flowingcode/backendcore/validation/CreationValidationException.java

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@sonarqubecloud
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants