Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SRU2023 v10 #162

Open
wants to merge 48 commits into
base: main
Choose a base branch
from
Open

SRU2023 v10 #162

wants to merge 48 commits into from

Conversation

zubri
Copy link
Member

@zubri zubri commented Jun 5, 2023

Summary by CodeRabbit

  • New Features

    • Introduced FieldEnum for available field names.
    • Added IBAN validation for Egypt.
    • Implemented NarrativeFragment class for detailed line information.
  • Bug Fixes

    • Resolved various issues with field parsing and validation patterns.
    • Fixed stack overflow errors in JSON implementations.
  • Deprecated

    • Deprecated certain methods in SafeXmlUtils for cleaner code practices.
  • Enhancements

    • Improved code security following CodeQL recommendations.
    • Updated narrative resolvers and validators for BIC, country, and currency constraints.
  • Build & Config

    • Transitioned to Java 11 and Jakarta EE 10.
    • Updated dependency versions in build.gradle for improved compatibility.
  • Chores

    • Updated CHANGELOG.md to reflect versioning and significant changes.

zubri and others added 28 commits June 5, 2023 17:20
…va 11 (#153)

* Migration to Java 11
* Migration to Jakarta EE 10
---------

Co-authored-by: Nicolas Filotto <[email protected]>
Co-authored-by: ptorres-prowide <[email protected]>
Co-authored-by: ptorres-prowide <[email protected]>
…egrator SCORE library to avoid misleading compiler warnings
Base automatically changed from SRU2023 to develop November 21, 2023 18:46
Copy link

coderabbitai bot commented May 23, 2024

📝 Walkthrough
📝 Walkthrough

Walkthrough

This update migrates the Prowide Core library from Java 8 to Java 11 and Jakarta EE 10, addressing dependency changes, build adjustments, and extensive validation improvements. Key enhancements include a new NarrativeFragment class, IBAN validation for Egypt, and various updates to the changelog reflecting a systematic version increment from 9.x.x to 10.x.x. Additionally, several methods have been deprecated, and improvements have been made to code security and field handling.

Changes

File(s) or Group Change Summary
CHANGELOG.md Documented extensive changes from version 9.4.x to 10.1.x including new features, bug fixes, and deprecations.
build.gradle Updated dependencies, Java version settings, and configurations aligning with Java 11 and Jakarta EE 10 standards.
src/.../swift/constraints Updated import statements from javax.validation to jakarta.validation.
src/.../swift/model Updated import statements from javax.persistence to jakarta.persistence and fixed persistence-related features.
src/test/.../swift Replaced new Integer() with Integer.valueOf() for consistency in test cases.

Sequence Diagram(s)

sequenceDiagram
    actor User
    participant App as Application
    participant Validator as BicValidator
    participant Jakarta as Jakarta Validation

    User ->> App: Request to validate BIC
    App ->> Validator: Perform BIC validation
    Validator ->> Jakarta: API call with new Jakarta validation
    Jakarta -->> Validator: Validates BIC
    Validator -->> App: Returns validation result
    App -->> User: Displays validation outcome
Loading

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

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

Outside diff range and nitpick comments (20)
CHANGELOG.md (20)

3-3: Consider using an en dash for numerical ranges or time ranges for better typographical accuracy.


Line range hint 71-71: Consider using a more concise expression to enhance readability.

- Added distinguishedName(boolean includeDefaultBranch) method to BIC in order to return default branch name
+ Added distinguishedName(boolean includeDefaultBranch) method to BIC to return default branch name

Line range hint 75-75: Consider using a more concise expression to enhance readability.

- Added addUnstructuredStrict method to Narrative in order to strictly wrap unstructured input
+ Added addUnstructuredStrict method to Narrative to strictly wrap unstructured input

Line range hint 105-105: Consider using a more concise expression to enhance readability.

- Added getBankCode() methods in order to allow direct access to data (used in SCORE messages)
+ Added getBankCode() methods to allow direct access to data (used in SCORE messages)

Line range hint 108-108: Consider using a more concise expression to enhance readability.

- Added removeRepeatedBoundaries method in order to remove repeated tag boundaries
+ Added removeRepeatedBoundaries method to remove repeated tag boundaries

Line range hint 206-206: Consider using a more concise expression to enhance readability.

- Enhanced SwiftParser in order to validate "Input" or "Output" Block 2 type
+ Enhanced SwiftParser to validate "Input" or "Output" Block 2 type

Line range hint 253-253: Consider using a hyphen for compound adjectives before nouns for clarity.

- Added backward compatible implementation in setComponent* and SetNarrative* API of narrative container fields
+ Added backward-compatible implementation in setComponent* and SetNarrative* API of narrative container fields

Line range hint 260-260: Consider removing the colon after the preposition "for" to improve grammatical correctness.

- Changed SwiftMessage#isGpi() to be true for: 103, 199, 299, 192, 196, 202COV or 205COV
+ Changed SwiftMessage#isGpi() to be true for 103, 199, 299, 192, 196, 202COV or 205COV

Line range hint 267-267: Consider using "acknowledgment" instead of "acknowledge" for grammatical correctness.

- Changed AbstractSwiftMessage JPA mapping to EAGER load the status trail and the properties when an MtSwiftMessage is created from an acknowledge (service 21 message)
+ Changed AbstractSwiftMessage JPA mapping to EAGER load the status trail and the properties when an MtSwiftMessage is created from an acknowledgment (service 21 message)

Line range hint 278-278: Consider using "overwriting" instead of "over writing" for grammatical correctness.

- Fixed setPdm in MtSwiftMessage that was over writing the pde field
+ Fixed setPdm in MtSwiftMessage that was overwriting the pde field

Line range hint 402-402: Consider using a more concise expression to enhance readability.

- Expanded sender/receiver in MtSwiftMessage and MxSwiftMessage from BIC8 to BIC11 in order to keep branch information in those cached attributes
+ Expanded sender/receiver in MtSwiftMessage and MxSwiftMessage from BIC8 to BIC11 to keep branch information in those cached attributes

Line range hint 449-449: Consider using "multipurpose" instead of "multi-purpose" for consistency with modern usage.

- Added a multi-purpose SwiftMessageComparator for MT, as an abstraction of the existing AckMessageComparator
+ Added a multipurpose SwiftMessageComparator for MT, as an abstraction of the existing AckMessageComparator

Line range hint 465-465: Consider using "inputs" instead of "input" for grammatical correctness.

- Fixed AckMessageComparator to cover all fields in block 2 input and output
+ Fixed AckMessageComparator to cover all fields in block 2 inputs and output

Line range hint 469-469: Consider using "afterward" instead of "afterwards" for American English consistency.

- Fixed parser to preserve trailing lines in field values, even if the lines are empty (empty trailing lines were trimmed before), afterwards the last message
+ Fixed parser to preserve trailing lines in field values, even if the lines are empty (empty trailing lines were trimmed before), afterward the last message

Line range hint 486-486: Consider using "fields" instead of "a fields" for grammatical correctness.

- Added a fields() method in SwiftTagListBlock to get all block Tag objects as Field objects
+ Added fields() method in SwiftTagListBlock to get all block Tag objects as Field objects

Line range hint 489-489: Consider using "blocks" instead of "a blocks" for grammatical correctness.

- Enhanced semantic in AckMessageComparator when a blocks are null or empty (see javadoc for details on how blank blocks are handled in comparison)
+ Enhanced semantic in AckMessageComparator when blocks are null or empty (see javadoc for details on how blank blocks are handled in comparison)

Line range hint 537-537: Consider using "parse" instead of "parses" for grammatical correctness.

- Fixed parser for field 98F   * Fixed field 61 parse allowing EC and ED as credit/debit mark subfield
+ Fixed parser for field 98F   * Fixed field 61 parses allowing EC and ED as credit/debit mark subfield

Line range hint 538-538: Consider using "BIC" instead of "BIC code" for redundancy elimination.

- Fixed serialization of component 1 in field 50F   * Fixed parser and serialization in Field98F   * Fixed methods in BusinessHeader to return the BIC code for both possible header types
+ Fixed serialization of component 1 in field 50F   * Fixed parser and serialization in Field98F   * Fixed methods in BusinessHeader to return the BIC for both possible header types

Line range hint 568-568: Consider using "split" instead of "splitted" for grammatical correctness.

- In Field61, component 6 was splitted into two independent components to hold the "transaction type" and the "identification code" as stated in the standard definition for function <SUB-6>
+ In Field61, component 6 was split into two independent components to hold the "transaction type" and the "identification code" as stated in the standard definition for function <SUB-6>

Line range hint 803-803: Consider using "by means of" instead of "by means of" for redundancy elimination.

- Migrated src code to java 1.5 (binary distribution is still 1.4 compatible by means of http://retroweaver.sourceforge.net/)
+ Migrated src code to java 1.5 (binary distribution is still 1.4 compatible using http://retroweaver.sourceforge.net/)
Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between cea328b and 450ce7f.
Files selected for processing (22)
  • .gitignore (1 hunks)
  • .idea/compiler.xml (1 hunks)
  • CHANGELOG.md (1 hunks)
  • build.gradle (6 hunks)
  • gradle/wrapper/gradle-wrapper.properties (1 hunks)
  • src/main/java/com/prowidesoftware/swift/constraints/BicConstraint.java (1 hunks)
  • src/main/java/com/prowidesoftware/swift/constraints/BicValidator.java (1 hunks)
  • src/main/java/com/prowidesoftware/swift/constraints/CountryConstraint.java (1 hunks)
  • src/main/java/com/prowidesoftware/swift/constraints/CountryValidator.java (1 hunks)
  • src/main/java/com/prowidesoftware/swift/constraints/CurrencyConstraint.java (1 hunks)
  • src/main/java/com/prowidesoftware/swift/constraints/CurrencyValidator.java (1 hunks)
  • src/main/java/com/prowidesoftware/swift/constraints/IbanConstraint.java (1 hunks)
  • src/main/java/com/prowidesoftware/swift/constraints/IbanValidator.java (1 hunks)
  • src/main/java/com/prowidesoftware/swift/model/AbstractSwiftMessage.java (1 hunks)
  • src/main/java/com/prowidesoftware/swift/model/MtSwiftMessage.java (1 hunks)
  • src/main/java/com/prowidesoftware/swift/model/SwiftMessageNote.java (1 hunks)
  • src/main/java/com/prowidesoftware/swift/model/SwiftMessageRevision.java (1 hunks)
  • src/main/java/com/prowidesoftware/swift/model/SwiftMessageStatusInfo.java (1 hunks)
  • src/test/java/com/prowidesoftware/swift/io/parser/SwiftParserConsumeBlockLenientTest.java (1 hunks)
  • src/test/java/com/prowidesoftware/swift/model/UnparsedTextListTest.java (5 hunks)
  • src/test/java/com/prowidesoftware/swift/model/field/FieldComponentLabelsCompatibilityTest.java (1 hunks)
  • src/test/java/com/prowidesoftware/swift/utils/SwiftFormatUtilsTest.java (1 hunks)
Files skipped from review due to trivial changes (12)
  • .gitignore
  • .idea/compiler.xml
  • gradle/wrapper/gradle-wrapper.properties
  • src/main/java/com/prowidesoftware/swift/constraints/BicConstraint.java
  • src/main/java/com/prowidesoftware/swift/constraints/CountryConstraint.java
  • src/main/java/com/prowidesoftware/swift/constraints/CountryValidator.java
  • src/main/java/com/prowidesoftware/swift/constraints/IbanValidator.java
  • src/main/java/com/prowidesoftware/swift/model/SwiftMessageNote.java
  • src/main/java/com/prowidesoftware/swift/model/SwiftMessageStatusInfo.java
  • src/test/java/com/prowidesoftware/swift/io/parser/SwiftParserConsumeBlockLenientTest.java
  • src/test/java/com/prowidesoftware/swift/model/UnparsedTextListTest.java
  • src/test/java/com/prowidesoftware/swift/utils/SwiftFormatUtilsTest.java
Additional Context Used
LanguageTool (84)
CHANGELOG.md (84)

Near line 3: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...# Prowide Core - CHANGELOG #### 10.1.15 - May 2024 * (PW-1862) Added NarrativeFr...


Near line 8: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...helper method to field 37K #### 10.1.14 - March 2024 * (PW-1812) Updated the nar...


Near line 13: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ... in the SafeXmlUtils class #### 10.1.13 - December 2023 * (PW-1718) Changed the ...


Near line 16: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ... existing API in Field50F) #### 10.1.12 - November 2023 * (PW-1697) Fixed valida...


Near line 19: Consider a shorter alternative to avoid wordiness.
Context: ... * Added DistinguishedName with Builder in order to encapsulate the BIC branch name logic ...


Near line 21: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...the BIC branch name logic #### 10.1.11 - November 2023 * (PW-1697) Fixed valida...


Near line 24: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...ds 14[H,K,L,M,N,O] and 29J #### 10.1.10 - November 2023 * (PW-1695) Fixed a stac...


Near line 69: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...tting-started/deprecation/) #### 9.3.15 - May 2023 * (PW-1341) Avoid log polluti...


Near line 71: Consider a shorter alternative to avoid wordiness.
Context: ...ean includeDefaultBranch) method to BIC in order to return default branch name #### 9.3.14...


Near line 73: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ... return default branch name #### 9.3.14 - March 2023 * (PW-1182) Fixed MT intern...


Near line 75: Consider a shorter alternative to avoid wordiness.
Context: ...dUnstructuredStrict method to Narrative in order to strictly wrap unstructured input #### ...


Near line 77: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...tly wrap unstructured input #### 9.3.13 - March 2023 * Deprecated all fields tha...


Near line 80: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...be removed from the library #### 9.3.12 - February 2023 * (PW-1109) Changed Narr...


Near line 86: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...based on the component name #### 9.3.11 - January 2023 * (PW-1152) Preserve line...


Near line 90: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...Container fields into JSON #### 9.3.10 - January 2023 * (PW-1150) Added field m...


Near line 95: Using ‘plenty’ without ‘of’ is considered to be informal.
Context: ...part as a unit block, both currency and amount present or missing #### 9.3.8 - November 2022 ...


Near line 105: Consider a shorter alternative to avoid wordiness.
Context: ...dNarrative: Added getBankCode() methods in order to allow direct access to data (used in SC...


Near line 108: Consider a shorter alternative to avoid wordiness.
Context: ...* Added removeRepeatedBoundaries method in order to remove repeated tag boundaries #### 9....


Near line 115: The verb “is” doesn’t seem to fit in this context, “are” is probably more formally correct.
Context: ... repetitions of sequence USECU/FIA that is not repetitive * Added sequence gette...


Near line 139: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...ed gson dependency to 2.9.0 #### 9.2.13 - April 2022 * (PW-892) Fixed AbstractMT...


Near line 144: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...error in Field 94G getValue #### 9.2.12 - March 2022 * (GH-103) fixed invalid Co...


Near line 151: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...ll * Spotbugs code review #### 9.2.11 - January 2022 * Added LineWrapper (util...


Near line 156: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...onstructor to the Tag class #### 9.2.10 - January 2022 * (PW-815) Fixed getValue...


Near line 165: To make your writing flow more naturally, try moving ‘also’ before the verb.
Context: ...oid trimming content when the component contains also the slash separator as part of the valu...


Near line 181: Possible typo: you repeated a word
Context: ...rrency) as no currency applies to these fields * Fields 94L and 85L: separated component 2 (Leg...


Near line 183: It appears that the past participle should be used here.
Context: ... * Field 94H: second component now has get{name}AsBIC and set{name}(BIC) methods ...


Near line 184: It appears that the past participle should be used here.
Context: ...nherits from OptionBPartyField (to have get/setPartyIdentifier) * Field 26C: sepa...


Near line 206: Consider a shorter alternative to avoid wordiness.
Context: ...d 98C * (PW-703) Enhanced SwiftParser in order to validate "Input" or "Output" Block 2 ty...


Near line 253: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...f the MT798 envelop) * (PW-451) Added backward compatible implementation in setComponent* and Set...


Near line 260: Do not use a colon (:) before a series that is introduced by a preposition (‘for’). Remove the colon or add a noun or a noun phrase after the preposition.
Context: ...Changed SwiftMessage#isGpi() to be true for: 103, 199, 299, 192, 196, 202COV or 205C...


Near line 267: The word ‘acknowledge’ is not a noun. Did you mean “acknowledgment”?
Context: ...en an MtSwiftMessage is created from an acknowledge (service 21 message) * Changed Abstra...


Near line 278: This is normally spelled as one word.
Context: ...Fixed setPdm in MtSwiftMessage that was over writing the pde field * Minor changes in the ...


Near line 340: The plural noun “fields” cannot be used with the article “a”. Did you mean “a field” or “fields”?
Context: ...ftMessage persistence mapping * Added a fields() method in SwiftTagListBlock to get al...


Near line 402: Consider a shorter alternative to avoid wordiness.
Context: ...e and MxSwiftMessage from BIC8 to BIC11 in order to keep branch information in those cached...


Near line 449: This word is normally spelled as one.
Context: ...d MUR generation in block 3 * Added a multi-purpose SwiftMessageComparator for MT, as an ab...


Near line 465: After the number ‘2’, use a plural noun. Did you mean “inputs”?
Context: ...mparator to cover all fields in block 2 input and output * Fixed getSender and getR...


Near line 469: In American English, ‘afterward’ is the preferred variant. ‘Afterwards’ is more commonly used in British English and other dialects.
Context: ... character '$' and the end of the file, afterwards the last message * Expanded helper AP...


Near line 486: Possible agreement error. The noun ‘field’ seems to be countable.
Context: ...ill be automatically created as block 3 field 119 when applies for the created MT *...


Near line 489: The plural noun “blocks” cannot be used with the article “a”. Did you mean “a block” or “blocks”?
Context: ...d semantic in AckMessageComparator when a blocks are null or empty (see javadoc for deta...


Near line 537: Possible agreement error. The noun ‘parse’ seems to be countable.
Context: ...parser for field 98F * Fixed field 61 parse allowing EC and ED as credit/debit mark...


Near line 538: This phrase is redundant (‘C’ stands for ‘code’). Use simply “BIC”.
Context: ...methods in BusinessHeader to return the BIC code for both possible header types * FIxe...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...m currency to string to allow codewords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’,...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...rrency to string to allow codewords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OT...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...ncy to string to allow codewords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’,...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...to string to allow codewords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PN...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...string to allow codewords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’,...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...ng to allow codewords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’, ’TA...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...to allow codewords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’, ’TAL’,...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...llow codewords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’, ’TAL’, ’TO...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...ords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’, ’TAL’, ’TOL’, ‘TON’,...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ... ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’, ’TAL’, ’TOL’, ‘TON’, ‘TO...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...RM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’, ’TAL’, ’TOL’, ‘TON’, ‘TOZ’, ’UNT’ * Fix...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ... ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’, ’TAL’, ’TOL’, ‘TON’, ‘TOZ’, ’UNT’ * Fixed f...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...LO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’, ’TAL’, ’TOL’, ‘TON’, ‘TOZ’, ’UNT’ * Fixed fiel...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ... ‘PND’, ’TAL’, ’TOL’, ‘TON’, ‘TOZ’, ’UNT’ * Fixed field 33B first component cha...


Near line 550: Unpaired symbol: ‘‘’ seems to be missing
Context: ...om currency to string to allow codeword ’PCT’ used in MT601 * Fixed API inconsi...


Near line 550: Unpaired symbol: ‘‘’ seems to be missing
Context: ...urrency to string to allow codeword ’PCT’ used in MT601 * Fixed API inconsisten...


Near line 555: Possible typo: you repeated a word
Context: ...Outgoing/Incoming API in AbstractMT and SwiftMessage * SwiftMessage.toJson changed timestamp format to the ...


Near line 568: The past tense and past participle of the verb “to split” is “split”. Alternatively you could use “separated” or “divided”.
Context: ...onents. * In Field61, component 6 was splitted into two independent components to hold...


Near line 579: Possible missing comma found.
Context: ...ng full qualified names from enums; for example getField(SwiftBlock1Field.LogicalTermin...


Near line 596: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...that unnecessary restricted the allowed amount of lines (not it is unlimited because c...


Near line 702: Insert a comma after thanking someone.
Context: ...3B at MT564. * getValue for Field35B. Thanks to Raghu [email protected] * getCalendar bu...


Near line 725: Do not use a colon (:) before a series that is introduced by a preposition (‘for’). Remove the colon or add a noun or a noun phrase after the preposition.
Context: ...sing of field 50F * Added field class for: 26C * Support to identify which seque...


Near line 729: This expression is usually spelled with a hyphen.
Context: ...ses to determine if field is generic or non generic * Field class made abstract * Field...


Near line 731: Possible typo: you repeated a word
Context: ...f a given component is optional for the field * Field getLabel: support for label exceptions ...


Near line 736: Do not use a colon (:) before a series that is introduced by a preposition (‘for’). Remove the colon or add a noun or a noun phrase after the preposition.
Context: ... field changes. * Added serialization for: 20E, 29G, 31G, 36E, 50G, 50H, 69B, 69D,...


Near line 749: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... getLabel at Field objects, to retrieve business oriented names from resource bundles #### 6.1.0...


Near line 770: This phrase is redundant (‘N’ stands for ‘number’). Use simply “ISIN”.
Context: ...rser for 35B when first component is an ISIN number * Added DATE1 support for fields pars...


Near line 803: Make sure that the singular noun after the number ‘1.4’ is correct.
Context: ...a 1.5 (binary distribution is still 1.4 compatible by means of http://retroweaver.sourcefo...


Near line 803: ‘by means of’ might be wordy. Consider a shorter alternative.
Context: ...ry distribution is still 1.4 compatible by means of http://retroweaver.sourceforge.net/) ...


Near line 827: Possible typo: you repeated a word
Context: ... * Helper methods from Block4 moved to SwiftTagListBlock * SwiftTagListBlock is no longer abstract, so it can be use...


Near line 855: This word is normally spelled as one.
Context: ...pping for simplified and more efficient data base schema. * Added support for unparsed ...


Near line 893: Possible missing comma found.
Context: ...us tests for IBAN validation. * Added JSValidationUnit backed by Rhino, to support easy extens...


Near line 898: When ‘tag-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...ates. * Code clean up. * Added many tag specific validation units targeting MT103 valida...


Near line 916: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...22. * Fixed issue 1595631. #### 3.2.0 - 2006 * Parser logging information clea...


Near line 919: Style-wise, it’s not ideal to insert an adverb (‘properly’) in the middle of an infinitive construction (‘to include’). Try moving the adverb to avoid split infinitives.
Context: ...race method on some servers). * Fixed build to properly include current timestamp in dist target when property release.na...


Near line 921: Consider using a different verb for a more formal wording.
Context: ...d message(1595589). * Updated code to fix issue mentioned in https://sourceforge....


Near line 923: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: .../message.php?msg_id=4001538. #### 3.1.1 - 2006 * Small fixes for java 1.4 compat...


Near line 924: Make sure that the singular noun after the number ‘1.4’ is correct.
Context: ...1.1 - 2006 * Small fixes for java 1.4 compatibility. #### 3.1.0 - 2006 * Fixes to compil...


Near line 926: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ... for java 1.4 compatibility. #### 3.1.0 - 2006 * Fixes to compile for java 1.4 b...


Near line 932: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...to manifest in created jars. #### 3.0.0 - 2006 * Build: Added release.name prope...


Near line 936: Consider using either the past participle “known” or the present participle “knowing” here.
Context: ...added control to exclude tests that are know to fail. * Model simplification: Swif...


Near line 941: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...t message to an XML representation. * Added ConversionService class which encapsula...


Near line 943: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ... many services conveniently. #### 2.0.0 - 2006 * New parser component highly tes...

Markdownlint (962)
CHANGELOG.md (962)

3: Expected: h2; Actual: h4
Heading levels should only increment by one level at a time


4: Expected: 0; Actual: 2
Unordered list indentation


5: Expected: 0; Actual: 2
Unordered list indentation


6: Expected: 0; Actual: 2
Unordered list indentation


9: Expected: 0; Actual: 2
Unordered list indentation


10: Expected: 0; Actual: 2
Unordered list indentation


11: Expected: 0; Actual: 2
Unordered list indentation


14: Expected: 0; Actual: 2
Unordered list indentation


17: Expected: 0; Actual: 2
Unordered list indentation


18: Expected: 0; Actual: 2
Unordered list indentation


19: Expected: 0; Actual: 2
Unordered list indentation


22: Expected: 0; Actual: 2
Unordered list indentation


25: Expected: 0; Actual: 2
Unordered list indentation


26: Expected: 0; Actual: 2
Unordered list indentation


29: Expected: 0; Actual: 2
Unordered list indentation


30: Expected: 0; Actual: 2
Unordered list indentation


33: Expected: 0; Actual: 2
Unordered list indentation


36: Expected: 0; Actual: 2
Unordered list indentation


37: Expected: 0; Actual: 2
Unordered list indentation


40: Expected: 0; Actual: 2
Unordered list indentation


43: Expected: 0; Actual: 2
Unordered list indentation


46: Expected: 0; Actual: 2
Unordered list indentation


49: Expected: 0; Actual: 2
Unordered list indentation


52: Expected: 0; Actual: 2
Unordered list indentation


53: Expected: 0; Actual: 2
Unordered list indentation


56: Expected: 0; Actual: 2
Unordered list indentation


57: Expected: 0; Actual: 2
Unordered list indentation


60: Expected: 0; Actual: 2
Unordered list indentation


61: Expected: 0; Actual: 2
Unordered list indentation


62: Expected: 0; Actual: 2
Unordered list indentation


63: Expected: 0; Actual: 2
Unordered list indentation


66: Expected: 0; Actual: 2
Unordered list indentation


67: Expected: 0; Actual: 2
Unordered list indentation


70: Expected: 0; Actual: 2
Unordered list indentation


71: Expected: 0; Actual: 2
Unordered list indentation


74: Expected: 0; Actual: 2
Unordered list indentation


75: Expected: 0; Actual: 2
Unordered list indentation


78: Expected: 0; Actual: 2
Unordered list indentation


81: Expected: 0; Actual: 2
Unordered list indentation


82: Expected: 0; Actual: 2
Unordered list indentation


83: Expected: 0; Actual: 2
Unordered list indentation


84: Expected: 0; Actual: 2
Unordered list indentation


87: Expected: 0; Actual: 2
Unordered list indentation


88: Expected: 0; Actual: 2
Unordered list indentation


91: Expected: 0; Actual: 2
Unordered list indentation


92: Expected: 0; Actual: 2
Unordered list indentation


95: Expected: 0; Actual: 2
Unordered list indentation


98: Expected: 0; Actual: 2
Unordered list indentation


101: Expected: 0; Actual: 2
Unordered list indentation


104: Expected: 0; Actual: 2
Unordered list indentation


105: Expected: 0; Actual: 2
Unordered list indentation


106: Expected: 0; Actual: 2
Unordered list indentation


107: Expected: 0; Actual: 2
Unordered list indentation


108: Expected: 0; Actual: 2
Unordered list indentation


111: Expected: 0; Actual: 2
Unordered list indentation


114: Expected: 0; Actual: 2
Unordered list indentation


115: Expected: 0; Actual: 2
Unordered list indentation


116: Expected: 0; Actual: 2
Unordered list indentation


119: Expected: 0; Actual: 2
Unordered list indentation


122: Expected: 0; Actual: 2
Unordered list indentation


123: Expected: 0; Actual: 2
Unordered list indentation


126: Expected: 0; Actual: 2
Unordered list indentation


127: Expected: 0; Actual: 2
Unordered list indentation


128: Expected: 0; Actual: 2
Unordered list indentation


129: Expected: 0; Actual: 2
Unordered list indentation


130: Expected: 0; Actual: 2
Unordered list indentation


131: Expected: 0; Actual: 2
Unordered list indentation


132: Expected: 0; Actual: 2
Unordered list indentation


135: Expected: 0; Actual: 2
Unordered list indentation


136: Expected: 0; Actual: 2
Unordered list indentation


137: Expected: 0; Actual: 2
Unordered list indentation


140: Expected: 0; Actual: 2
Unordered list indentation


141: Expected: 0; Actual: 2
Unordered list indentation


142: Expected: 0; Actual: 2
Unordered list indentation


145: Expected: 0; Actual: 2
Unordered list indentation


146: Expected: 0; Actual: 2
Unordered list indentation


147: Expected: 0; Actual: 2
Unordered list indentation


148: Expected: 0; Actual: 2
Unordered list indentation


149: Expected: 0; Actual: 2
Unordered list indentation


152: Expected: 0; Actual: 2
Unordered list indentation


153: Expected: 0; Actual: 2
Unordered list indentation


154: Expected: 0; Actual: 2
Unordered list indentation


157: Expected: 0; Actual: 2
Unordered list indentation


158: Expected: 0; Actual: 2
Unordered list indentation


159: Expected: 0; Actual: 2
Unordered list indentation


160: Expected: 0; Actual: 2
Unordered list indentation


161: Expected: 0; Actual: 2
Unordered list indentation


164: Expected: 0; Actual: 2
Unordered list indentation


165: Expected: 0; Actual: 2
Unordered list indentation


166: Expected: 0; Actual: 2
Unordered list indentation


167: Expected: 0; Actual: 2
Unordered list indentation


168: Expected: 0; Actual: 2
Unordered list indentation


169: Expected: 0; Actual: 2
Unordered list indentation


170: Expected: 0; Actual: 2
Unordered list indentation


171: Expected: 0; Actual: 2
Unordered list indentation


172: Expected: 0; Actual: 2
Unordered list indentation


173: Expected: 0; Actual: 2
Unordered list indentation


176: Expected: 0; Actual: 2
Unordered list indentation


177: Expected: 0; Actual: 2
Unordered list indentation


178: Expected: 0; Actual: 2
Unordered list indentation


181: Expected: 0; Actual: 2
Unordered list indentation


182: Expected: 0; Actual: 2
Unordered list indentation


183: Expected: 0; Actual: 2
Unordered list indentation


184: Expected: 0; Actual: 2
Unordered list indentation


185: Expected: 0; Actual: 2
Unordered list indentation


186: Expected: 0; Actual: 2
Unordered list indentation


187: Expected: 0; Actual: 2
Unordered list indentation


188: Expected: 0; Actual: 2
Unordered list indentation


189: Expected: 0; Actual: 2
Unordered list indentation


190: Expected: 0; Actual: 2
Unordered list indentation


191: Expected: 0; Actual: 2
Unordered list indentation


192: Expected: 0; Actual: 2
Unordered list indentation


193: Expected: 0; Actual: 2
Unordered list indentation


194: Expected: 0; Actual: 2
Unordered list indentation


195: Expected: 0; Actual: 2
Unordered list indentation


196: Expected: 0; Actual: 2
Unordered list indentation


197: Expected: 0; Actual: 2
Unordered list indentation


198: Expected: 0; Actual: 2
Unordered list indentation


199: Expected: 0; Actual: 2
Unordered list indentation


200: Expected: 0; Actual: 2
Unordered list indentation


201: Expected: 0; Actual: 2
Unordered list indentation


202: Expected: 0; Actual: 2
Unordered list indentation


205: Expected: 0; Actual: 2
Unordered list indentation


206: Expected: 0; Actual: 2
Unordered list indentation


207: Expected: 0; Actual: 2
Unordered list indentation


210: Expected: 0; Actual: 2
Unordered list indentation


213: Expected: 0; Actual: 2
Unordered list indentation


216: Expected: 0; Actual: 2
Unordered list indentation


217: Expected: 0; Actual: 2
Unordered list indentation


218: Expected: 0; Actual: 2
Unordered list indentation


221: Expected: 0; Actual: 2
Unordered list indentation


222: Expected: 0; Actual: 2
Unordered list indentation


223: Expected: 0; Actual: 2
Unordered list indentation


224: Expected: 0; Actual: 2
Unordered list indentation


227: Expected: 0; Actual: 2
Unordered list indentation


228: Expected: 0; Actual: 2
Unordered list indentation


229: Expected: 0; Actual: 2
Unordered list indentation


230: Expected: 0; Actual: 2
Unordered list indentation


233: Expected: 0; Actual: 2
Unordered list indentation


234: Expected: 0; Actual: 2
Unordered list indentation


235: Expected: 0; Actual: 2
Unordered list indentation


236: Expected: 0; Actual: 2
Unordered list indentation


237: Expected: 0; Actual: 2
Unordered list indentation


240: Expected: 0; Actual: 2
Unordered list indentation


241: Expected: 0; Actual: 2
Unordered list indentation


242: Expected: 0; Actual: 2
Unordered list indentation


243: Expected: 0; Actual: 2
Unordered list indentation


244: Expected: 0; Actual: 2
Unordered list indentation


245: Expected: 0; Actual: 2
Unordered list indentation


246: Expected: 0; Actual: 2
Unordered list indentation


247: Expected: 0; Actual: 2
Unordered list indentation


248: Expected: 0; Actual: 2
Unordered list indentation


249: Expected: 0; Actual: 2
Unordered list indentation


250: Expected: 0; Actual: 2
Unordered list indentation


251: Expected: 0; Actual: 2
Unordered list indentation


252: Expected: 0; Actual: 2
Unordered list indentation


253: Expected: 0; Actual: 2
Unordered list indentation


254: Expected: 0; Actual: 2
Unordered list indentation


255: Expected: 0; Actual: 2
Unordered list indentation


256: Expected: 0; Actual: 2
Unordered list indentation


257: Expected: 0; Actual: 2
Unordered list indentation


260: Expected: 0; Actual: 2
Unordered list indentation


261: Expected: 0; Actual: 2
Unordered list indentation


262: Expected: 0; Actual: 2
Unordered list indentation


263: Expected: 0; Actual: 2
Unordered list indentation


264: Expected: 0; Actual: 2
Unordered list indentation


267: Expected: 0; Actual: 2
Unordered list indentation


268: Expected: 0; Actual: 2
Unordered list indentation


269: Expected: 0; Actual: 2
Unordered list indentation


272: Expected: 0; Actual: 2
Unordered list indentation


273: Expected: 0; Actual: 2
Unordered list indentation


274: Expected: 0; Actual: 2
Unordered list indentation


275: Expected: 0; Actual: 2
Unordered list indentation


276: Expected: 0; Actual: 2
Unordered list indentation


277: Expected: 0; Actual: 2
Unordered list indentation


278: Expected: 0; Actual: 2
Unordered list indentation


279: Expected: 0; Actual: 2
Unordered list indentation


280: Expected: 0; Actual: 2
Unordered list indentation


283: Expected: 0; Actual: 2
Unordered list indentation


284: Expected: 0; Actual: 2
Unordered list indentation


285: Expected: 0; Actual: 2
Unordered list indentation


286: Expected: 0; Actual: 2
Unordered list indentation


287: Expected: 0; Actual: 2
Unordered list indentation


290: Expected: 0; Actual: 2
Unordered list indentation


291: Expected: 0; Actual: 2
Unordered list indentation


292: Expected: 0; Actual: 2
Unordered list indentation


293: Expected: 0; Actual: 2
Unordered list indentation


294: Expected: 0; Actual: 2
Unordered list indentation


295: Expected: 0; Actual: 2
Unordered list indentation


296: Expected: 0; Actual: 2
Unordered list indentation


297: Expected: 0; Actual: 2
Unordered list indentation


298: Expected: 0; Actual: 2
Unordered list indentation


299: Expected: 0; Actual: 2
Unordered list indentation


300: Expected: 0; Actual: 2
Unordered list indentation


301: Expected: 0; Actual: 2
Unordered list indentation


302: Expected: 0; Actual: 2
Unordered list indentation


305: Expected: 0; Actual: 2
Unordered list indentation


306: Expected: 0; Actual: 2
Unordered list indentation


307: Expected: 0; Actual: 2
Unordered list indentation


308: Expected: 0; Actual: 2
Unordered list indentation


309: Expected: 0; Actual: 2
Unordered list indentation


310: Expected: 0; Actual: 2
Unordered list indentation


311: Expected: 0; Actual: 2
Unordered list indentation


314: Expected: 0; Actual: 2
Unordered list indentation


315: Expected: 0; Actual: 2
Unordered list indentation


316: Expected: 0; Actual: 2
Unordered list indentation


317: Expected: 0; Actual: 2
Unordered list indentation


320: Expected: 0; Actual: 2
Unordered list indentation


321: Expected: 0; Actual: 2
Unordered list indentation


322: Expected: 0; Actual: 2
Unordered list indentation


323: Expected: 0; Actual: 2
Unordered list indentation


324: Expected: 0; Actual: 2
Unordered list indentation


325: Expected: 0; Actual: 2
Unordered list indentation


326: Expected: 0; Actual: 2
Unordered list indentation


327: Expected: 0; Actual: 2
Unordered list indentation


328: Expected: 0; Actual: 2
Unordered list indentation


329: Expected: 0; Actual: 2
Unordered list indentation


330: Expected: 0; Actual: 2
Unordered list indentation


331: Expected: 0; Actual: 2
Unordered list indentation


332: Expected: 0; Actual: 2
Unordered list indentation


333: Expected: 0; Actual: 2
Unordered list indentation


334: Expected: 0; Actual: 2
Unordered list indentation


335: Expected: 0; Actual: 2
Unordered list indentation


336: Expected: 0; Actual: 2
Unordered list indentation


337: Expected: 0; Actual: 2
Unordered list indentation


338: Expected: 0; Actual: 2
Unordered list indentation


339: Expected: 0; Actual: 2
Unordered list indentation


340: Expected: 0; Actual: 2
Unordered list indentation


341: Expected: 0; Actual: 2
Unordered list indentation


344: Expected: 0; Actual: 2
Unordered list indentation


345: Expected: 0; Actual: 2
Unordered list indentation


346: Expected: 0; Actual: 2
Unordered list indentation


347: Expected: 0; Actual: 2
Unordered list indentation


348: Expected: 0; Actual: 2
Unordered list indentation


349: Expected: 0; Actual: 2
Unordered list indentation


350: Expected: 0; Actual: 2
Unordered list indentation


351: Expected: 0; Actual: 2
Unordered list indentation


352: Expected: 0; Actual: 2
Unordered list indentation


353: Expected: 0; Actual: 2
Unordered list indentation


354: Expected: 0; Actual: 2
Unordered list indentation


355: Expected: 0; Actual: 2
Unordered list indentation


356: Expected: 0; Actual: 2
Unordered list indentation


357: Expected: 0; Actual: 2
Unordered list indentation


358: Expected: 0; Actual: 2
Unordered list indentation


359: Expected: 0; Actual: 2
Unordered list indentation


360: Expected: 0; Actual: 2
Unordered list indentation


361: Expected: 0; Actual: 2
Unordered list indentation


362: Expected: 0; Actual: 2
Unordered list indentation


365: Expected: 0; Actual: 2
Unordered list indentation


368: Expected: 0; Actual: 2
Unordered list indentation


371: Expected: 0; Actual: 2
Unordered list indentation


372: Expected: 0; Actual: 2
Unordered list indentation


373: Expected: 0; Actual: 2
Unordered list indentation


374: Expected: 0; Actual: 2
Unordered list indentation


375: Expected: 0; Actual: 2
Unordered list indentation


376: Expected: 0; Actual: 2
Unordered list indentation


377: Expected: 0; Actual: 2
Unordered list indentation


378: Expected: 0; Actual: 2
Unordered list indentation


381: Expected: 0; Actual: 2
Unordered list indentation


382: Expected: 0; Actual: 2
Unordered list indentation


383: Expected: 0; Actual: 2
Unordered list indentation


384: Expected: 0; Actual: 2
Unordered list indentation


385: Expected: 0; Actual: 2
Unordered list indentation


386: Expected: 0; Actual: 2
Unordered list indentation


387: Expected: 0; Actual: 2
Unordered list indentation


388: Expected: 0; Actual: 2
Unordered list indentation


389: Expected: 0; Actual: 2
Unordered list indentation


390: Expected: 0; Actual: 2
Unordered list indentation


391: Expected: 0; Actual: 2
Unordered list indentation


392: Expected: 0; Actual: 2
Unordered list indentation


395: Expected: 0; Actual: 2
Unordered list indentation


398: Expected: 0; Actual: 2
Unordered list indentation


399: Expected: 0; Actual: 2
Unordered list indentation


400: Expected: 0; Actual: 2
Unordered list indentation


401: Expected: 0; Actual: 2
Unordered list indentation


402: Expected: 0; Actual: 2
Unordered list indentation


403: Expected: 0; Actual: 2
Unordered list indentation


404: Expected: 0; Actual: 2
Unordered list indentation


405: Expected: 0; Actual: 2
Unordered list indentation


406: Expected: 0; Actual: 2
Unordered list indentation


407: Expected: 0; Actual: 2
Unordered list indentation


410: Expected: 0; Actual: 2
Unordered list indentation


413: Expected: 0; Actual: 2
Unordered list indentation


414: Expected: 0; Actual: 2
Unordered list indentation


415: Expected: 0; Actual: 2
Unordered list indentation


416: Expected: 0; Actual: 2
Unordered list indentation


417: Expected: 0; Actual: 2
Unordered list indentation


418: Expected: 0; Actual: 2
Unordered list indentation


419: Expected: 0; Actual: 2
Unordered list indentation


420: Expected: 0; Actual: 2
Unordered list indentation


421: Expected: 0; Actual: 2
Unordered list indentation


424: Expected: 0; Actual: 2
Unordered list indentation


425: Expected: 0; Actual: 2
Unordered list indentation


426: Expected: 0; Actual: 2
Unordered list indentation


427: Expected: 0; Actual: 2
Unordered list indentation


430: Expected: 0; Actual: 2
Unordered list indentation


431: Expected: 0; Actual: 2
Unordered list indentation


434: Expected: 0; Actual: 2
Unordered list indentation


435: Expected: 0; Actual: 2
Unordered list indentation


436: Expected: 0; Actual: 2
Unordered list indentation


437: Expected: 0; Actual: 2
Unordered list indentation


438: Expected: 0; Actual: 2
Unordered list indentation


439: Expected: 0; Actual: 2
Unordered list indentation


442: Expected: 0; Actual: 2
Unordered list indentation


443: Expected: 0; Actual: 2
Unordered list indentation


444: Expected: 0; Actual: 2
Unordered list indentation


447: Expected: 0; Actual: 2
Unordered list indentation


448: Expected: 0; Actual: 2
Unordered list indentation


449: Expected: 0; Actual: 2
Unordered list indentation


450: Expected: 0; Actual: 2
Unordered list indentation


451: Expected: 0; Actual: 2
Unordered list indentation


452: Expected: 0; Actual: 2
Unordered list indentation


453: Expected: 0; Actual: 2
Unordered list indentation


454: Expected: 0; Actual: 2
Unordered list indentation


455: Expected: 0; Actual: 2
Unordered list indentation


456: Expected: 0; Actual: 2
Unordered list indentation


457: Expected: 0; Actual: 2
Unordered list indentation


458: Expected: 0; Actual: 2
Unordered list indentation


459: Expected: 0; Actual: 2
Unordered list indentation


460: Expected: 0; Actual: 2
Unordered list indentation


461: Expected: 0; Actual: 2
Unordered list indentation


462: Expected: 0; Actual: 2
Unordered list indentation


463: Expected: 0; Actual: 2
Unordered list indentation


464: Expected: 0; Actual: 2
Unordered list indentation


465: Expected: 0; Actual: 2
Unordered list indentation


466: Expected: 0; Actual: 2
Unordered list indentation


467: Expected: 0; Actual: 2
Unordered list indentation


468: Expected: 0; Actual: 2
Unordered list indentation


469: Expected: 0; Actual: 2
Unordered list indentation


470: Expected: 0; Actual: 2
Unordered list indentation


471: Expected: 0; Actual: 2
Unordered list indentation


472: Expected: 0; Actual: 2
Unordered list indentation


473: Expected: 0; Actual: 2
Unordered list indentation


474: Expected: 0; Actual: 2
Unordered list indentation


475: Expected: 0; Actual: 2
Unordered list indentation


478: Expected: 0; Actual: 2
Unordered list indentation


479: Expected: 0; Actual: 2
Unordered list indentation


480: Expected: 0; Actual: 2
Unordered list indentation


481: Expected: 0; Actual: 2
Unordered list indentation


482: Expected: 0; Actual: 2
Unordered list indentation


483: Expected: 0; Actual: 2
Unordered list indentation


484: Expected: 0; Actual: 2
Unordered list indentation


485: Expected: 0; Actual: 2
Unordered list indentation


486: Expected: 0; Actual: 2
Unordered list indentation


487: Expected: 0; Actual: 2
Unordered list indentation


488: Expected: 0; Actual: 2
Unordered list indentation


489: Expected: 0; Actual: 2
Unordered list indentation


492: Expected: 0; Actual: 2
Unordered list indentation


493: Expected: 0; Actual: 2
Unordered list indentation


494: Expected: 0; Actual: 2
Unordered list indentation


495: Expected: 0; Actual: 2
Unordered list indentation


498: Expected: 0; Actual: 2
Unordered list indentation


499: Expected: 0; Actual: 2
Unordered list indentation


500: Expected: 0; Actual: 2
Unordered list indentation


501: Expected: 0; Actual: 2
Unordered list indentation


502: Expected: 0; Actual: 2
Unordered list indentation


503: Expected: 0; Actual: 2
Unordered list indentation


504: Expected: 0; Actual: 2
Unordered list indentation


505: Expected: 0; Actual: 2
Unordered list indentation


506: Expected: 0; Actual: 2
Unordered list indentation


507: Expected: 0; Actual: 2
Unordered list indentation


508: Expected: 0; Actual: 2
Unordered list indentation


509: Expected: 0; Actual: 2
Unordered list indentation


510: Expected: 0; Actual: 2
Unordered list indentation


511: Expected: 0; Actual: 2
Unordered list indentation


512: Expected: 0; Actual: 2
Unordered list indentation


513: Expected: 0; Actual: 2
Unordered list indentation


514: Expected: 0; Actual: 2
Unordered list indentation


515: Expected: 0; Actual: 2
Unordered list indentation


516: Expected: 0; Actual: 2
Unordered list indentation


517: Expected: 0; Actual: 2
Unordered list indentation


518: Expected: 0; Actual: 2
Unordered list indentation


519: Expected: 0; Actual: 2
Unordered list indentation


520: Expected: 0; Actual: 2
Unordered list indentation


521: Expected: 0; Actual: 2
Unordered list indentation


522: Expected: 0; Actual: 2
Unordered list indentation


523: Expected: 0; Actual: 2
Unordered list indentation


524: Expected: 0; Actual: 2
Unordered list indentation


525: Expected: 0; Actual: 2
Unordered list indentation


526: Expected: 0; Actual: 2
Unordered list indentation


527: Expected: 0; Actual: 2
Unordered list indentation


528: Expected: 0; Actual: 2
Unordered list indentation


529: Expected: 0; Actual: 2
Unordered list indentation


530: Expected: 0; Actual: 2
Unordered list indentation


531: Expected: 0; Actual: 2
Unordered list indentation


532: Expected: 0; Actual: 2
Unordered list indentation


533: Expected: 0; Actual: 2
Unordered list indentation


534: Expected: 0; Actual: 2
Unordered list indentation


535: Expected: 0; Actual: 2
Unordered list indentation


536: Expected: 0; Actual: 2
Unordered list indentation


537: Expected: 0; Actual: 2
Unordered list indentation


538: Expected: 0; Actual: 2
Unordered list indentation


539: Expected: 0; Actual: 2
Unordered list indentation


540: Expected: 0; Actual: 2
Unordered list indentation


541: Expected: 0; Actual: 2
Unordered list indentation


542: Expected: 0; Actual: 2
Unordered list indentation


543: Expected: 0; Actual: 2
Unordered list indentation


544: Expected: 0; Actual: 2
Unordered list indentation


545: Expected: 0; Actual: 2
Unordered list indentation


546: Expected: 0; Actual: 2
Unordered list indentation


547: Expected: 0; Actual: 2
Unordered list indentation


548: Expected: 0; Actual: 2
Unordered list indentation


549: Expected: 0; Actual: 2
Unordered list indentation


550: Expected: 0; Actual: 2
Unordered list indentation


551: Expected: 0; Actual: 2
Unordered list indentation


552: Expected: 0; Actual: 2
Unordered list indentation


553: Expected: 0; Actual: 2
Unordered list indentation


554: Expected: 0; Actual: 2
Unordered list indentation


555: Expected: 0; Actual: 2
Unordered list indentation


556: Expected: 0; Actual: 2
Unordered list indentation


557: Expected: 0; Actual: 2
Unordered list indentation


558: Expected: 0; Actual: 2
Unordered list indentation


559: Expected: 0; Actual: 2
Unordered list indentation


560: Expected: 0; Actual: 2
Unordered list indentation


561: Expected: 0; Actual: 2
Unordered list indentation


562: Expected: 0; Actual: 2
Unordered list indentation


563: Expected: 0; Actual: 2
Unordered list indentation


564: Expected: 0; Actual: 2
Unordered list indentation


565: Expected: 0; Actual: 2
Unordered list indentation


566: Expected: 0; Actual: 2
Unordered list indentation


567: Expected: 0; Actual: 2
Unordered list indentation


568: Expected: 0; Actual: 2
Unordered list indentation


569: Expected: 0; Actual: 2
Unordered list indentation


572: Expected: 0; Actual: 2
Unordered list indentation


573: Expected: 0; Actual: 2
Unordered list indentation


574: Expected: 0; Actual: 2
Unordered list indentation


575: Expected: 0; Actual: 2
Unordered list indentation


576: Expected: 0; Actual: 2
Unordered list indentation


577: Expected: 0; Actual: 2
Unordered list indentation


578: Expected: 0; Actual: 2
Unordered list indentation


579: Expected: 0; Actual: 2
Unordered list indentation


580: Expected: 0; Actual: 2
Unordered list indentation


581: Expected: 0; Actual: 2
Unordered list indentation


582: Expected: 0; Actual: 2
Unordered list indentation


583: Expected: 0; Actual: 2
Unordered list indentation


584: Expected: 0; Actual: 2
Unordered list indentation


585: Expected: 0; Actual: 2
Unordered list indentation


586: Expected: 0; Actual: 2
Unordered list indentation


587: Expected: 0; Actual: 2
Unordered list indentation


588: Expected: 0; Actual: 2
Unordered list indentation


589: Expected: 0; Actual: 2
Unordered list indentation


590: Expected: 0; Actual: 2
Unordered list indentation


591: Expected: 0; Actual: 2
Unordered list indentation


592: Expected: 0; Actual: 2
Unordered list indentation


593: Expected: 0; Actual: 2
Unordered list indentation


594: Expected: 0; Actual: 2
Unordered list indentation


595: Expected: 0; Actual: 2
Unordered list indentation


596: Expected: 0; Actual: 2
Unordered list indentation


597: Expected: 0; Actual: 2
Unordered list indentation


598: Expected: 0; Actual: 2
Unordered list indentation


599: Expected: 0; Actual: 2
Unordered list indentation


600: Expected: 0; Actual: 2
Unordered list indentation


601: Expected: 0; Actual: 2
Unordered list indentation


602: Expected: 0; Actual: 2
Unordered list indentation


605: Expected: 0; Actual: 2
Unordered list indentation


606: Expected: 0; Actual: 2
Unordered list indentation


607: Expected: 0; Actual: 2
Unordered list indentation


608: Expected: 0; Actual: 2
Unordered list indentation


609: Expected: 0; Actual: 2
Unordered list indentation


610: Expected: 0; Actual: 2
Unordered list indentation


611: Expected: 0; Actual: 2
Unordered list indentation


612: Expected: 0; Actual: 2
Unordered list indentation


613: Expected: 0; Actual: 2
Unordered list indentation


614: Expected: 0; Actual: 2
Unordered list indentation


615: Expected: 0; Actual: 2
Unordered list indentation


616: Expected: 0; Actual: 2
Unordered list indentation


617: Expected: 0; Actual: 2
Unordered list indentation


618: Expected: 0; Actual: 2
Unordered list indentation


619: Expected: 0; Actual: 2
Unordered list indentation


622: Expected: 0; Actual: 2
Unordered list indentation


623: Expected: 0; Actual: 2
Unordered list indentation


624: Expected: 0; Actual: 2
Unordered list indentation


625: Expected: 0; Actual: 2
Unordered list indentation


626: Expected: 0; Actual: 2
Unordered list indentation


627: Expected: 0; Actual: 2
Unordered list indentation


628: Expected: 0; Actual: 2
Unordered list indentation


629: Expected: 0; Actual: 2
Unordered list indentation


630: Expected: 0; Actual: 2
Unordered list indentation


631: Expected: 0; Actual: 2
Unordered list indentation


632: Expected: 0; Actual: 2
Unordered list indentation


633: Expected: 0; Actual: 2
Unordered list indentation


634: Expected: 0; Actual: 2
Unordered list indentation


635: Expected: 0; Actual: 2
Unordered list indentation


636: Expected: 0; Actual: 2
Unordered list indentation


637: Expected: 0; Actual: 2
Unordered list indentation


638: Expected: 0; Actual: 2
Unordered list indentation


639: Expected: 0; Actual: 2
Unordered list indentation


640: Expected: 0; Actual: 2
Unordered list indentation


641: Expected: 0; Actual: 2
Unordered list indentation


644: Expected: 0; Actual: 2
Unordered list indentation


645: Expected: 0; Actual: 2
Unordered list indentation


646: Expected: 0; Actual: 2
Unordered list indentation


647: Expected: 0; Actual: 2
Unordered list indentation


648: Expected: 0; Actual: 2
Unordered list indentation


649: Expected: 0; Actual: 2
Unordered list indentation


650: Expected: 0; Actual: 2
Unordered list indentation


651: Expected: 0; Actual: 2
Unordered list indentation


652: Expected: 0; Actual: 2
Unordered list indentation


653: Expected: 0; Actual: 2
Unordered list indentation


654: Expected: 0; Actual: 2
Unordered list indentation


655: Expected: 0; Actual: 2
Unordered list indentation


656: Expected: 0; Actual: 2
Unordered list indentation


657: Expected: 0; Actual: 2
Unordered list indentation


658: Expected: 0; Actual: 2
Unordered list indentation


659: Expected: 0; Actual: 2
Unordered list indentation


660: Expected: 0; Actual: 2
Unordered list indentation


661: Expected: 0; Actual: 2
Unordered list indentation


662: Expected: 0; Actual: 2
Unordered list indentation


663: Expected: 0; Actual: 2
Unordered list indentation


664: Expected: 0; Actual: 2
Unordered list indentation


665: Expected: 0; Actual: 2
Unordered list indentation


666: Expected: 0; Actual: 2
Unordered list indentation


667: Expected: 0; Actual: 2
Unordered list indentation


668: Expected: 0; Actual: 2
Unordered list indentation


669: Expected: 0; Actual: 2
Unordered list indentation


670: Expected: 0; Actual: 2
Unordered list indentation


671: Expected: 0; Actual: 2
Unordered list indentation


674: Expected: 0; Actual: 2
Unordered list indentation


675: Expected: 0; Actual: 2
Unordered list indentation


676: Expected: 0; Actual: 2
Unordered list indentation


677: Expected: 0; Actual: 2
Unordered list indentation


678: Expected: 0; Actual: 2
Unordered list indentation


679: Expected: 0; Actual: 2
Unordered list indentation


680: Expected: 0; Actual: 2
Unordered list indentation


683: Expected: 0; Actual: 2
Unordered list indentation


684: Expected: 0; Actual: 2
Unordered list indentation


685: Expected: 0; Actual: 2
Unordered list indentation


686: Expected: 0; Actual: 2
Unordered list indentation


687: Expected: 0; Actual: 2
Unordered list indentation


688: Expected: 0; Actual: 2
Unordered list indentation


691: Expected: 0; Actual: 2
Unordered list indentation


692: Expected: 0; Actual: 2
Unordered list indentation


693: Expected: 0; Actual: 2
Unordered list indentation


694: Expected: 0; Actual: 2
Unordered list indentation


695: Expected: 0; Actual: 2
Unordered list indentation


696: Expected: 0; Actual: 2
Unordered list indentation


697: Expected: 0; Actual: 2
Unordered list indentation


698: Expected: 0; Actual: 2
Unordered list indentation


699: Expected: 0; Actual: 2
Unordered list indentation


700: Expected: 0; Actual: 2
Unordered list indentation


701: Expected: 0; Actual: 2
Unordered list indentation


702: Expected: 0; Actual: 2
Unordered list indentation


703: Expected: 0; Actual: 2
Unordered list indentation


704: Expected: 0; Actual: 2
Unordered list indentation


705: Expected: 0; Actual: 2
Unordered list indentation


706: Expected: 0; Actual: 2
Unordered list indentation


709: Expected: 0; Actual: 2
Unordered list indentation


710: Expected: 0; Actual: 2
Unordered list indentation


711: Expected: 0; Actual: 2
Unordered list indentation


712: Expected: 0; Actual: 2
Unordered list indentation


713: Expected: 0; Actual: 2
Unordered list indentation


714: Expected: 0; Actual: 2
Unordered list indentation


715: Expected: 0; Actual: 2
Unordered list indentation


716: Expected: 0; Actual: 2
Unordered list indentation


717: Expected: 0; Actual: 2
Unordered list indentation


718: Expected: 0; Actual: 2
Unordered list indentation


719: Expected: 0; Actual: 2
Unordered list indentation


722: Expected: 0; Actual: 2
Unordered list indentation


723: Expected: 0; Actual: 2
Unordered list indentation


724: Expected: 0; Actual: 2
Unordered list indentation


725: Expected: 0; Actual: 2
Unordered list indentation


726: Expected: 0; Actual: 2
Unordered list indentation


727: Expected: 0; Actual: 2
Unordered list indentation


728: Expected: 0; Actual: 2
Unordered list indentation


729: Expected: 0; Actual: 2
Unordered list indentation


730: Expected: 0; Actual: 2
Unordered list indentation


731: Expected: 0; Actual: 2
Unordered list indentation


732: Expected: 0; Actual: 2
Unordered list indentation


733: Expected: 0; Actual: 2
Unordered list indentation


734: Expected: 0; Actual: 2
Unordered list indentation


735: Expected: 0; Actual: 2
Unordered list indentation


736: Expected: 0; Actual: 2
Unordered list indentation


737: Expected: 0; Actual: 2
Unordered list indentation


740: Expected: 0; Actual: 2
Unordered list indentation


741: Expected: 0; Actual: 2
Unordered list indentation


742: Expected: 0; Actual: 2
Unordered list indentation


743: Expected: 0; Actual: 2
Unordered list indentation


744: Expected: 0; Actual: 2
Unordered list indentation


745: Expected: 0; Actual: 2
Unordered list indentation


746: Expected: 0; Actual: 2
Unordered list indentation


747: Expected: 0; Actual: 2
Unordered list indentation


748: Expected: 0; Actual: 2
Unordered list indentation


749: Expected: 0; Actual: 2
Unordered list indentation


752: Expected: 0; Actual: 2
Unordered list indentation


753: Expected: 0; Actual: 2
Unordered list indentation


754: Expected: 0; Actual: 2
Unordered list indentation


755: Expected: 0; Actual: 2
Unordered list indentation


758: Expected: 0; Actual: 2
Unordered list indentation


759: Expected: 0; Actual: 2
Unordered list indentation


760: Expected: 0; Actual: 2
Unordered list indentation


761: Expected: 0; Actual: 2
Unordered list indentation


762: Expected: 0; Actual: 2
Unordered list indentation


763: Expected: 0; Actual: 2
Unordered list indentation


764: Expected: 0; Actual: 2
Unordered list indentation


765: Expected: 0; Actual: 2
Unordered list indentation


766: Expected: 0; Actual: 2
Unordered list indentation


767: Expected: 0; Actual: 2
Unordered list indentation


768: Expected: 0; Actual: 2
Unordered list indentation


769: Expected: 0; Actual: 2
Unordered list indentation


770: Expected: 0; Actual: 2
Unordered list indentation


771: Expected: 0; Actual: 2
Unordered list indentation


772: Expected: 0; Actual: 2
Unordered list indentation


773: Expected: 0; Actual: 2
Unordered list indentation


774: Expected: 0; Actual: 2
Unordered list indentation


775: Expected: 0; Actual: 2
Unordered list indentation


776: Expected: 0; Actual: 2
Unordered list indentation


777: Expected: 0; Actual: 2
Unordered list indentation


780: Expected: 0; Actual: 2
Unordered list indentation


781: Expected: 0; Actual: 2
Unordered list indentation


784: Expected: 0; Actual: 2
Unordered list indentation


785: Expected: 0; Actual: 2
Unordered list indentation


786: Expected: 0; Actual: 2
Unordered list indentation


789: Expected: 0; Actual: 2
Unordered list indentation


790: Expected: 0; Actual: 2
Unordered list indentation


793: Expected: 0; Actual: 2
Unordered list indentation


794: Expected: 0; Actual: 2
Unordered list indentation


795: Expected: 0; Actual: 2
Unordered list indentation


796: Expected: 0; Actual: 2
Unordered list indentation


797: Expected: 0; Actual: 2
Unordered list indentation


798: Expected: 0; Actual: 2
Unordered list indentation


799: Expected: 0; Actual: 2
Unordered list indentation


800: Expected: 0; Actual: 2
Unordered list indentation


803: Expected: 0; Actual: 2
Unordered list indentation


804: Expected: 0; Actual: 2
Unordered list indentation


805: Expected: 0; Actual: 2
Unordered list indentation


806: Expected: 0; Actual: 2
Unordered list indentation


807: Expected: 0; Actual: 2
Unordered list indentation


808: Expected: 0; Actual: 2
Unordered list indentation


809: Expected: 0; Actual: 2
Unordered list indentation


810: Expected: 0; Actual: 2
Unordered list indentation


811: Expected: 0; Actual: 2
Unordered list indentation


812: Expected: 0; Actual: 2
Unordered list indentation


813: Expected: 0; Actual: 2
Unordered list indentation


814: Expected: 0; Actual: 2
Unordered list indentation


815: Expected: 0; Actual: 2
Unordered list indentation


816: Expected: 0; Actual: 2
Unordered list indentation


817: Expected: 0; Actual: 2
Unordered list indentation


818: Expected: 0; Actual: 2
Unordered list indentation


819: Expected: 0; Actual: 2
Unordered list indentation


820: Expected: 0; Actual: 2
Unordered list indentation


821: Expected: 0; Actual: 2
Unordered list indentation


822: Expected: 0; Actual: 2
Unordered list indentation


823: Expected: 0; Actual: 2
Unordered list indentation


824: Expected: 0; Actual: 2
Unordered list indentation


825: Expected: 0; Actual: 2
Unordered list indentation


826: Expected: 0; Actual: 2
Unordered list indentation


827: Expected: 0; Actual: 2
Unordered list indentation


828: Expected: 0; Actual: 2
Unordered list indentation


829: Expected: 0; Actual: 2
Unordered list indentation


830: Expected: 0; Actual: 2
Unordered list indentation


833: Expected: 0; Actual: 2
Unordered list indentation


834: Expected: 0; Actual: 2
Unordered list indentation


835: Expected: 0; Actual: 2
Unordered list indentation


836: Expected: 0; Actual: 2
Unordered list indentation


837: Expected: 0; Actual: 2
Unordered list indentation


838: Expected: 0; Actual: 2
Unordered list indentation


839: Expected: 0; Actual: 2
Unordered list indentation


840: Expected: 0; Actual: 2
Unordered list indentation


841: Expected: 0; Actual: 2
Unordered list indentation


842: Expected: 0; Actual: 2
Unordered list indentation


845: Expected: 0; Actual: 2
Unordered list indentation


846: Expected: 0; Actual: 2
Unordered list indentation


847: Expected: 0; Actual: 2
Unordered list indentation


848: Expected: 0; Actual: 2
Unordered list indentation


849: Expected: 0; Actual: 2
Unordered list indentation


850: Expected: 0; Actual: 2
Unordered list indentation


851: Expected: 0; Actual: 2
Unordered list indentation


852: Expected: 0; Actual: 2
Unordered list indentation


855: Expected: 0; Actual: 2
Unordered list indentation


856: Expected: 0; Actual: 2
Unordered list indentation


857: Expected: 0; Actual: 2
Unordered list indentation


858: Expected: 0; Actual: 2
Unordered list indentation


859: Expected: 0; Actual: 2
Unordered list indentation


860: Expected: 0; Actual: 2
Unordered list indentation


861: Expected: 0; Actual: 2
Unordered list indentation


862: Expected: 0; Actual: 2
Unordered list indentation


863: Expected: 0; Actual: 2
Unordered list indentation


864: Expected: 0; Actual: 2
Unordered list indentation


865: Expected: 0; Actual: 2
Unordered list indentation


866: Expected: 0; Actual: 2
Unordered list indentation


867: Expected: 0; Actual: 2
Unordered list indentation


870: Expected: 0; Actual: 2
Unordered list indentation


871: Expected: 0; Actual: 2
Unordered list indentation


872: Expected: 0; Actual: 2
Unordered list indentation


873: Expected: 0; Actual: 2
Unordered list indentation


874: Expected: 0; Actual: 2
Unordered list indentation


875: Expected: 0; Actual: 2
Unordered list indentation


876: Expected: 0; Actual: 2
Unordered list indentation


877: Expected: 0; Actual: 2
Unordered list indentation


878: Expected: 0; Actual: 2
Unordered list indentation


879: Expected: 0; Actual: 2
Unordered list indentation


880: Expected: 0; Actual: 2
Unordered list indentation


881: Expected: 0; Actual: 2
Unordered list indentation


882: Expected: 0; Actual: 2
Unordered list indentation


883: Expected: 0; Actual: 2
Unordered list indentation


884: Expected: 0; Actual: 2
Unordered list indentation


885: Expected: 0; Actual: 2
Unordered list indentation


886: Expected: 0; Actual: 2
Unordered list indentation


889: Expected: 0; Actual: 2
Unordered list indentation


890: Expected: 0; Actual: 2
Unordered list indentation


891: Expected: 0; Actual: 2
Unordered list indentation


892: Expected: 0; Actual: 2
Unordered list indentation


893: Expected: 0; Actual: 2
Unordered list indentation


894: Expected: 0; Actual: 2
Unordered list indentation


895: Expected: 0; Actual: 2
Unordered list indentation


896: Expected: 0; Actual: 2
Unordered list indentation


897: Expected: 0; Actual: 2
Unordered list indentation


898: Expected: 0; Actual: 2
Unordered list indentation


899: Expected: 0; Actual: 2
Unordered list indentation


902: Expected: 0; Actual: 2
Unordered list indentation


903: Expected: 0; Actual: 2
Unordered list indentation


904: Expected: 0; Actual: 2
Unordered list indentation


905: Expected: 0; Actual: 2
Unordered list indentation


906: Expected: 0; Actual: 2
Unordered list indentation


907: Expected: 0; Actual: 2
Unordered list indentation


908: Expected: 0; Actual: 2
Unordered list indentation


909: Expected: 0; Actual: 2
Unordered list indentation


910: Expected: 0; Actual: 2
Unordered list indentation


911: Expected: 0; Actual: 2
Unordered list indentation


912: Expected: 0; Actual: 2
Unordered list indentation


913: Expected: 0; Actual: 2
Unordered list indentation


914: Expected: 0; Actual: 2
Unordered list indentation


917: Expected: 0; Actual: 2
Unordered list indentation


918: Expected: 0; Actual: 2
Unordered list indentation


919: Expected: 0; Actual: 2
Unordered list indentation


920: Expected: 0; Actual: 2
Unordered list indentation


921: Expected: 0; Actual: 2
Unordered list indentation


924: Expected: 0; Actual: 2
Unordered list indentation


927: Expected: 0; Actual: 2
Unordered list indentation


928: Expected: 0; Actual: 2
Unordered list indentation


929: Expected: 0; Actual: 2
Unordered list indentation


930: Expected: 0; Actual: 2
Unordered list indentation


933: Expected: 0; Actual: 2
Unordered list indentation


934: Expected: 0; Actual: 2
Unordered list indentation


935: Expected: 0; Actual: 2
Unordered list indentation


936: Expected: 0; Actual: 2
Unordered list indentation


937: Expected: 0; Actual: 2
Unordered list indentation


938: Expected: 0; Actual: 2
Unordered list indentation


939: Expected: 0; Actual: 2
Unordered list indentation


940: Expected: 0; Actual: 2
Unordered list indentation


941: Expected: 0; Actual: 2
Unordered list indentation


944: Expected: 0; Actual: 2
Unordered list indentation


945: Expected: 0; Actual: 2
Unordered list indentation


946: Expected: 0; Actual: 2
Unordered list indentation


947: Expected: 0; Actual: 2
Unordered list indentation


19: Expected: 0 or 2; Actual: 1
Trailing spaces


88: Expected: 0 or 2; Actual: 1
Trailing spaces


98: Expected: 0 or 2; Actual: 1
Trailing spaces


106: Expected: 0 or 2; Actual: 1
Trailing spaces


3: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


8: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


13: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


16: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


21: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


24: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


28: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


32: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


35: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


39: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


42: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


45: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


48: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


51: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


55: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


59: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


65: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


69: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


73: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


77: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


80: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


86: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


90: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


94: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


97: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


100: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


103: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


110: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


113: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


118: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


121: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


125: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


134: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


139: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


144: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


151: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


156: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


163: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


175: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


180: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


204: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


209: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


212: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


215: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


220: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


226: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


232: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


239: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


259: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


266: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


271: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


282: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


289: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


304: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


313: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


319: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


343: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


364: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


367: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


370: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


380: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


394: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


397: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


409: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


412: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


423: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


429: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


433: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


441: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


446: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


477: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


491: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


497: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


571: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


604: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


621: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


643: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


673: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


682: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


690: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


708: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


721: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


739: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


751: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


757: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


779: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


783: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


788: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


792: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


802: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


832: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


844: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


854: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


869: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


888: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


901: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


916: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


923: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


926: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


932: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


943: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


4: null
Lists should be surrounded by blank lines


9: null
Lists should be surrounded by blank lines


14: null
Lists should be surrounded by blank lines


17: null
Lists should be surrounded by blank lines


22: null
Lists should be surrounded by blank lines


25: null
Lists should be surrounded by blank lines


29: null
Lists should be surrounded by blank lines


33: null
Lists should be surrounded by blank lines


36: null
Lists should be surrounded by blank lines


40: null
Lists should be surrounded by blank lines


43: null
Lists should be surrounded by blank lines


46: null
Lists should be surrounded by blank lines


49: null
Lists should be surrounded by blank lines


52: null
Lists should be surrounded by blank lines


56: null
Lists should be surrounded by blank lines


60: null
Lists should be surrounded by blank lines


66: null
Lists should be surrounded by blank lines


70: null
Lists should be surrounded by blank lines


74: null
Lists should be surrounded by blank lines


78: null
Lists should be surrounded by blank lines


81: null
Lists should be surrounded by blank lines


87: null
Lists should be surrounded by blank lines


91: null
Lists should be surrounded by blank lines


95: null
Lists should be surrounded by blank lines


98: null
Lists should be surrounded by blank lines


101: null
Lists should be surrounded by blank lines


104: null
Lists should be surrounded by blank lines


111: null
Lists should be surrounded by blank lines


114: null
Lists should be surrounded by blank lines


119: null
Lists should be surrounded by blank lines


122: null
Lists should be surrounded by blank lines


126: null
Lists should be surrounded by blank lines


135: null
Lists should be surrounded by blank lines


140: null
Lists should be surrounded by blank lines


145: null
Lists should be surrounded by blank lines


152: null
Lists should be surrounded by blank lines


157: null
Lists should be surrounded by blank lines


164: null
Lists should be surrounded by blank lines


176: null
Lists should be surrounded by blank lines


181: null
Lists should be surrounded by blank lines


205: null
Lists should be surrounded by blank lines


210: null
Lists should be surrounded by blank lines


213: null
Lists should be surrounded by blank lines


216: null
Lists should be surrounded by blank lines


221: null
Lists should be surrounded by blank lines


227: null
Lists should be surrounded by blank lines


233: null
Lists should be surrounded by blank lines


240: null
Lists should be surrounded by blank lines


260: null
Lists should be surrounded by blank lines


267: null
Lists should be surrounded by blank lines


272: null
Lists should be surrounded by blank lines


283: null
Lists should be surrounded by blank lines


290: null
Lists should be surrounded by blank lines


305: null
Lists should be surrounded by blank lines


314: null
Lists should be surrounded by blank lines


320: null
Lists should be surrounded by blank lines


344: null
Lists should be surrounded by blank lines


365: null
Lists should be surrounded by blank lines


368: null
Lists should be surrounded by blank lines


371: null
Lists should be surrounded by blank lines


381: null
Lists should be surrounded by blank lines


395: null
Lists should be surrounded by blank lines


398: null
Lists should be surrounded by blank lines


410: null
Lists should be surrounded by blank lines


413: null
Lists should be surrounded by blank lines


424: null
Lists should be surrounded by blank lines


430: null
Lists should be surrounded by blank lines


434: null
Lists should be surrounded by blank lines


442: null
Lists should be surrounded by blank lines


447: null
Lists should be surrounded by blank lines


478: null
Lists should be surrounded by blank lines


492: null
Lists should be surrounded by blank lines


498: null
Lists should be surrounded by blank lines


572: null
Lists should be surrounded by blank lines


605: null
Lists should be surrounded by blank lines


622: null
Lists should be surrounded by blank lines


644: null
Lists should be surrounded by blank lines


674: null
Lists should be surrounded by blank lines


683: null
Lists should be surrounded by blank lines


691: null
Lists should be surrounded by blank lines


709: null
Lists should be surrounded by blank lines


722: null
Lists should be surrounded by blank lines


740: null
Lists should be surrounded by blank lines


752: null
Lists should be surrounded by blank lines


758: null
Lists should be surrounded by blank lines


780: null
Lists should be surrounded by blank lines


784: null
Lists should be surrounded by blank lines


789: null
Lists should be surrounded by blank lines


793: null
Lists should be surrounded by blank lines


803: null
Lists should be surrounded by blank lines


833: null
Lists should be surrounded by blank lines


845: null
Lists should be surrounded by blank lines


855: null
Lists should be surrounded by blank lines


870: null
Lists should be surrounded by blank lines


889: null
Lists should be surrounded by blank lines


902: null
Lists should be surrounded by blank lines


917: null
Lists should be surrounded by blank lines


924: null
Lists should be surrounded by blank lines


927: null
Lists should be surrounded by blank lines


933: null
Lists should be surrounded by blank lines


944: null
Lists should be surrounded by blank lines


67: null
Bare URL used


136: null
Bare URL used


234: null
Bare URL used


284: null
Bare URL used


316: null
Bare URL used


374: null
Bare URL used


442: null
Bare URL used


702: null
Bare URL used


803: null
Bare URL used


921: null
Bare URL used


253: null
Spaces inside emphasis markers

Additional comments not posted (13)
src/main/java/com/prowidesoftware/swift/constraints/CurrencyValidator.java (1)

19-20: Migration from javax to jakarta validation imports is correctly implemented.

src/main/java/com/prowidesoftware/swift/constraints/IbanConstraint.java (1)

20-21: Migration from javax to jakarta validation imports is correctly implemented.

src/main/java/com/prowidesoftware/swift/constraints/CurrencyConstraint.java (1)

20-21: Migration from javax to jakarta validation imports is correctly implemented.

src/main/java/com/prowidesoftware/swift/constraints/BicValidator.java (1)

20-21: Migration from javax to jakarta validation imports is correctly implemented.

src/test/java/com/prowidesoftware/swift/model/field/FieldComponentLabelsCompatibilityTest.java (1)

56-57: Use of generics and modern instantiation methods is correctly implemented.

src/main/java/com/prowidesoftware/swift/model/SwiftMessageRevision.java (1)

18-18: Migration from javax to jakarta persistence imports is correctly implemented.

Also applies to: 20-20

build.gradle (5)

7-10: Updated dependencies to newer versions.

Ensure that these new versions are compatible with the rest of the project dependencies and do not introduce any breaking changes.


42-42: Java language version set to 11.

This change aligns with the project's move to Java 11 as mentioned in the PR summary. Ensure all project modules are compatible with Java 11.


58-62: Jakarta dependencies are set as compile-only to avoid forcing them on users.

This is a good practice to prevent unnecessary dependency propagation. Verify that this aligns with the project's architectural goals and dependency management strategies.


72-76: Source directories for the 'main' source set have been explicitly defined.

This ensures clarity in the project structure. Verify that all intended source directories are included and that there are no missing or extraneous paths.


91-92: Java compatibility settings updated to version 11.

This change is consistent with the Java version update and ensures that the build artifacts are compatible with Java 11 environments.

src/main/java/com/prowidesoftware/swift/model/MtSwiftMessage.java (1)

27-29: Migration from javax.persistence to jakarta.persistence.

This change is part of the migration to Jakarta EE standards as outlined in the PR summary. Ensure that all related configurations and runtime environments are updated to fully support Jakarta EE.

src/main/java/com/prowidesoftware/swift/model/AbstractSwiftMessage.java (1)

24-25: Migration from javax to jakarta namespace confirmed for persistence and XML binding.

This change aligns with the broader migration to Jakarta EE standards as noted in the PR summary. Ensure that all related components and configurations are also updated to fully support Jakarta EE.

CHANGELOG.md Outdated Show resolved Hide resolved
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
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: 6

Outside diff range and nitpick comments (6)
CHANGELOG.md (6)

Line range hint 69-69: Use an en dash in the version heading to correctly represent the date range.

-#### 9.3.15 - May 2023
+#### 9.3.15 – May 2023

Line range hint 73-73: Replace the hyphen with an en dash in the version heading for proper date range representation.

-#### 9.3.14 - March 2023
+#### 9.3.14 – March 2023

Line range hint 77-77: Update the version heading to use an en dash for the date range, aligning with typographic standards.

-#### 9.3.13 - March 2023
+#### 9.3.13 – March 2023

Line range hint 80-80: For typographical accuracy, replace the hyphen with an en dash in the version heading date range.

-#### 9.3.12 - February 2023
+#### 9.3.12 – February 2023

Line range hint 86-86: Use an en dash instead of a hyphen in the version heading to denote the date range correctly.

-#### 9.3.11 - January 2023
+#### 9.3.11 – January 2023

Line range hint 90-90: Adopt the use of an en dash in the version heading for the date range for consistency and correctness.

-#### 9.3.10 - January 2023
+#### 9.3.10 – January 2023
Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between 450ce7f and 4aa5bda.
Files selected for processing (1)
  • CHANGELOG.md (1 hunks)
Additional Context Used
LanguageTool (80)
CHANGELOG.md (80)

Near line 3: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...# Prowide Core - CHANGELOG #### 10.1.15 - May 2024 * (PW-1862) Added NarrativeFr...


Near line 8: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...helper method to field 37K #### 10.1.14 - March 2024 * (PW-1812) Updated the nar...


Near line 13: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ... in the SafeXmlUtils class #### 10.1.13 - December 2023 * (PW-1718) Changed the ...


Near line 16: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ... existing API in Field50F) #### 10.1.12 - November 2023 * (PW-1697) Fixed valida...


Near line 21: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...the BIC branch name logic #### 10.1.11 - November 2023 * (PW-1697) Fixed valida...


Near line 24: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...ds 14[H,K,L,M,N,O] and 29J #### 10.1.10 - November 2023 * (PW-1695) Fixed a stac...


Near line 69: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...tting-started/deprecation/) #### 9.3.15 - May 2023 * (PW-1341) Avoid log polluti...


Near line 71: Consider a shorter alternative to avoid wordiness.
Context: ...ean includeDefaultBranch) method to BIC in order to return default branch name #### 9.3.14...


Near line 73: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ... return default branch name #### 9.3.14 - March 2023 * (PW-1182) Fixed MT intern...


Near line 75: Consider a shorter alternative to avoid wordiness.
Context: ...dUnstructuredStrict method to Narrative in order to strictly wrap unstructured input #### ...


Near line 77: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...tly wrap unstructured input #### 9.3.13 - March 2023 * Deprecated all fields tha...


Near line 80: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...be removed from the library #### 9.3.12 - February 2023 * (PW-1109) Changed Narr...


Near line 86: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...based on the component name #### 9.3.11 - January 2023 * (PW-1152) Preserve line...


Near line 90: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...Container fields into JSON #### 9.3.10 - January 2023 * (PW-1150) Added field m...


Near line 95: Using ‘plenty’ without ‘of’ is considered to be informal.
Context: ...part as a unit block, both currency and amount present or missing #### 9.3.8 - November 2022 ...


Near line 105: Consider a shorter alternative to avoid wordiness.
Context: ...dNarrative: Added getBankCode() methods in order to allow direct access to data (used in SC...


Near line 108: Consider a shorter alternative to avoid wordiness.
Context: ...* Added removeRepeatedBoundaries method in order to remove repeated tag boundaries #### 9....


Near line 139: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...ed gson dependency to 2.9.0 #### 9.2.13 - April 2022 * (PW-892) Fixed AbstractMT...


Near line 144: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...error in Field 94G getValue #### 9.2.12 - March 2022 * (GH-103) fixed invalid Co...


Near line 151: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...ll * Spotbugs code review #### 9.2.11 - January 2022 * Added LineWrapper (util...


Near line 156: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...onstructor to the Tag class #### 9.2.10 - January 2022 * (PW-815) Fixed getValue...


Near line 165: To make your writing flow more naturally, try moving ‘also’ before the verb.
Context: ...oid trimming content when the component contains also the slash separator as part of the valu...


Near line 181: Possible typo: you repeated a word
Context: ...rrency) as no currency applies to these fields * Fields 94L and 85L: separated component 2 (Leg...


Near line 183: It appears that the past participle should be used here.
Context: ... * Field 94H: second component now has get{name}AsBIC and set{name}(BIC) methods ...


Near line 184: It appears that the past participle should be used here.
Context: ...nherits from OptionBPartyField (to have get/setPartyIdentifier) * Field 26C: sepa...


Near line 206: Consider a shorter alternative to avoid wordiness.
Context: ...d 98C * (PW-703) Enhanced SwiftParser in order to validate "Input" or "Output" Block 2 ty...


Near line 253: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...f the MT798 envelop) * (PW-451) Added backward compatible implementation in setComponent* and Set...


Near line 260: Do not use a colon (:) before a series that is introduced by a preposition (‘for’). Remove the colon or add a noun or a noun phrase after the preposition.
Context: ...Changed SwiftMessage#isGpi() to be true for: 103, 199, 299, 192, 196, 202COV or 205C...


Near line 267: The word ‘acknowledge’ is not a noun. Did you mean “acknowledgment”?
Context: ...en an MtSwiftMessage is created from an acknowledge (service 21 message) * Changed Abstra...


Near line 278: This is normally spelled as one word.
Context: ...Fixed setPdm in MtSwiftMessage that was over writing the pde field * Minor changes in the ...


Near line 340: The plural noun “fields” cannot be used with the article “a”. Did you mean “a field” or “fields”?
Context: ...ftMessage persistence mapping * Added a fields() method in SwiftTagListBlock to get al...


Near line 402: Consider a shorter alternative to avoid wordiness.
Context: ...e and MxSwiftMessage from BIC8 to BIC11 in order to keep branch information in those cached...


Near line 449: This word is normally spelled as one.
Context: ...d MUR generation in block 3 * Added a multi-purpose SwiftMessageComparator for MT, as an ab...


Near line 465: After the number ‘2’, use a plural noun. Did you mean “inputs”?
Context: ...mparator to cover all fields in block 2 input and output * Fixed getSender and getR...


Near line 469: In American English, ‘afterward’ is the preferred variant. ‘Afterwards’ is more commonly used in British English and other dialects.
Context: ... character '$' and the end of the file, afterwards the last message * Expanded helper AP...


Near line 486: Possible agreement error. The noun ‘field’ seems to be countable.
Context: ...ill be automatically created as block 3 field 119 when applies for the created MT *...


Near line 489: The plural noun “blocks” cannot be used with the article “a”. Did you mean “a block” or “blocks”?
Context: ...d semantic in AckMessageComparator when a blocks are null or empty (see javadoc for deta...


Near line 537: Possible agreement error. The noun ‘parse’ seems to be countable.
Context: ...parser for field 98F * Fixed field 61 parse allowing EC and ED as credit/debit mark...


Near line 538: This phrase is redundant (‘C’ stands for ‘code’). Use simply “BIC”.
Context: ...methods in BusinessHeader to return the BIC code for both possible header types * FIxe...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...m currency to string to allow codewords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’,...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...rrency to string to allow codewords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OT...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...ncy to string to allow codewords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’,...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...to string to allow codewords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PN...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...string to allow codewords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’,...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...ng to allow codewords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’, ’TA...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...to allow codewords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’, ’TAL’,...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...llow codewords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’, ’TAL’, ’TO...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...ords ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’, ’TAL’, ’TOL’, ‘TON’,...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ... ’FOZ’, ’GOZ’, ’GRM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’, ’TAL’, ’TOL’, ‘TON’, ‘TO...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...RM’, ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’, ’TAL’, ’TOL’, ‘TON’, ‘TOZ’, ’UNT’ * Fix...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ... ’KLO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’, ’TAL’, ’TOL’, ‘TON’, ‘TOZ’, ’UNT’ * Fixed f...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ...LO’, ‘LIT’, ’LOT’, ‘OTH’, ‘PND’, ’TAL’, ’TOL’, ‘TON’, ‘TOZ’, ’UNT’ * Fixed fiel...


Near line 549: Unpaired symbol: ‘‘’ seems to be missing
Context: ... ‘PND’, ’TAL’, ’TOL’, ‘TON’, ‘TOZ’, ’UNT’ * Fixed field 33B first component cha...


Near line 550: Unpaired symbol: ‘‘’ seems to be missing
Context: ...om currency to string to allow codeword ’PCT’ used in MT601 * Fixed API inconsi...


Near line 550: Unpaired symbol: ‘‘’ seems to be missing
Context: ...urrency to string to allow codeword ’PCT’ used in MT601 * Fixed API inconsisten...


Near line 555: Possible typo: you repeated a word
Context: ...Outgoing/Incoming API in AbstractMT and SwiftMessage * SwiftMessage.toJson changed timestamp format to the ...


Near line 568: The past tense and past participle of the verb “to split” is “split”. Alternatively you could use “separated” or “divided”.
Context: ...onents. * In Field61, component 6 was splitted into two independent components to hold...


Near line 596: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...that unnecessary restricted the allowed amount of lines (not it is unlimited because c...


Near line 702: Insert a comma after thanking someone.
Context: ...3B at MT564. * getValue for Field35B. Thanks to Raghu [email protected] * getCalendar bu...


Near line 725: Do not use a colon (:) before a series that is introduced by a preposition (‘for’). Remove the colon or add a noun or a noun phrase after the preposition.
Context: ...sing of field 50F * Added field class for: 26C * Support to identify which seque...


Near line 729: This expression is usually spelled with a hyphen.
Context: ...ses to determine if field is generic or non generic * Field class made abstract * Field...


Near line 731: Possible typo: you repeated a word
Context: ...f a given component is optional for the field * Field getLabel: support for label exceptions ...


Near line 736: Do not use a colon (:) before a series that is introduced by a preposition (‘for’). Remove the colon or add a noun or a noun phrase after the preposition.
Context: ... field changes. * Added serialization for: 20E, 29G, 31G, 36E, 50G, 50H, 69B, 69D,...


Near line 749: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... getLabel at Field objects, to retrieve business oriented names from resource bundles #### 6.1.0...


Near line 770: This phrase is redundant (‘N’ stands for ‘number’). Use simply “ISIN”.
Context: ...rser for 35B when first component is an ISIN number * Added DATE1 support for fields pars...


Near line 803: Make sure that the singular noun after the number ‘1.4’ is correct.
Context: ...a 1.5 (binary distribution is still 1.4 compatible by means of http://retroweaver.sourcefo...


Near line 803: ‘by means of’ might be wordy. Consider a shorter alternative.
Context: ...ry distribution is still 1.4 compatible by means of http://retroweaver.sourceforge.net/) ...


Near line 827: Possible typo: you repeated a word
Context: ... * Helper methods from Block4 moved to SwiftTagListBlock * SwiftTagListBlock is no longer abstract, so it can be use...


Near line 855: This word is normally spelled as one.
Context: ...pping for simplified and more efficient data base schema. * Added support for unparsed ...


Near line 898: When ‘tag-specific’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...ates. * Code clean up. * Added many tag specific validation units targeting MT103 valida...


Near line 916: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...22. * Fixed issue 1595631. #### 3.2.0 - 2006 * Parser logging information clea...


Near line 919: Style-wise, it’s not ideal to insert an adverb (‘properly’) in the middle of an infinitive construction (‘to include’). Try moving the adverb to avoid split infinitives.
Context: ...race method on some servers). * Fixed build to properly include current timestamp in dist target when property release.na...


Near line 921: Consider using a different verb for a more formal wording.
Context: ...d message(1595589). * Updated code to fix issue mentioned in https://sourceforge....


Near line 923: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: .../message.php?msg_id=4001538. #### 3.1.1 - 2006 * Small fixes for java 1.4 compat...


Near line 924: Make sure that the singular noun after the number ‘1.4’ is correct.
Context: ...1.1 - 2006 * Small fixes for java 1.4 compatibility. #### 3.1.0 - 2006 * Fixes to compil...


Near line 926: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ... for java 1.4 compatibility. #### 3.1.0 - 2006 * Fixes to compile for java 1.4 b...


Near line 932: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...to manifest in created jars. #### 3.0.0 - 2006 * Build: Added release.name prope...


Near line 936: Consider using either the past participle “known” or the present participle “knowing” here.
Context: ...added control to exclude tests that are know to fail. * Model simplification: Swif...


Near line 941: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...t message to an XML representation. * Added ConversionService class which encapsula...


Near line 943: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ... many services conveniently. #### 2.0.0 - 2006 * New parser component highly tes...

Markdownlint (962)
CHANGELOG.md (962)

3: Expected: h2; Actual: h4
Heading levels should only increment by one level at a time


4: Expected: 0; Actual: 2
Unordered list indentation


5: Expected: 0; Actual: 2
Unordered list indentation


6: Expected: 0; Actual: 2
Unordered list indentation


9: Expected: 0; Actual: 2
Unordered list indentation


10: Expected: 0; Actual: 2
Unordered list indentation


11: Expected: 0; Actual: 2
Unordered list indentation


14: Expected: 0; Actual: 2
Unordered list indentation


17: Expected: 0; Actual: 2
Unordered list indentation


18: Expected: 0; Actual: 2
Unordered list indentation


19: Expected: 0; Actual: 2
Unordered list indentation


22: Expected: 0; Actual: 2
Unordered list indentation


25: Expected: 0; Actual: 2
Unordered list indentation


26: Expected: 0; Actual: 2
Unordered list indentation


29: Expected: 0; Actual: 2
Unordered list indentation


30: Expected: 0; Actual: 2
Unordered list indentation


33: Expected: 0; Actual: 2
Unordered list indentation


36: Expected: 0; Actual: 2
Unordered list indentation


37: Expected: 0; Actual: 2
Unordered list indentation


40: Expected: 0; Actual: 2
Unordered list indentation


43: Expected: 0; Actual: 2
Unordered list indentation


46: Expected: 0; Actual: 2
Unordered list indentation


49: Expected: 0; Actual: 2
Unordered list indentation


52: Expected: 0; Actual: 2
Unordered list indentation


53: Expected: 0; Actual: 2
Unordered list indentation


56: Expected: 0; Actual: 2
Unordered list indentation


57: Expected: 0; Actual: 2
Unordered list indentation


60: Expected: 0; Actual: 2
Unordered list indentation


61: Expected: 0; Actual: 2
Unordered list indentation


62: Expected: 0; Actual: 2
Unordered list indentation


63: Expected: 0; Actual: 2
Unordered list indentation


66: Expected: 0; Actual: 2
Unordered list indentation


67: Expected: 0; Actual: 2
Unordered list indentation


70: Expected: 0; Actual: 2
Unordered list indentation


71: Expected: 0; Actual: 2
Unordered list indentation


74: Expected: 0; Actual: 2
Unordered list indentation


75: Expected: 0; Actual: 2
Unordered list indentation


78: Expected: 0; Actual: 2
Unordered list indentation


81: Expected: 0; Actual: 2
Unordered list indentation


82: Expected: 0; Actual: 2
Unordered list indentation


83: Expected: 0; Actual: 2
Unordered list indentation


84: Expected: 0; Actual: 2
Unordered list indentation


87: Expected: 0; Actual: 2
Unordered list indentation


88: Expected: 0; Actual: 2
Unordered list indentation


91: Expected: 0; Actual: 2
Unordered list indentation


92: Expected: 0; Actual: 2
Unordered list indentation


95: Expected: 0; Actual: 2
Unordered list indentation


98: Expected: 0; Actual: 2
Unordered list indentation


101: Expected: 0; Actual: 2
Unordered list indentation


104: Expected: 0; Actual: 2
Unordered list indentation


105: Expected: 0; Actual: 2
Unordered list indentation


106: Expected: 0; Actual: 2
Unordered list indentation


107: Expected: 0; Actual: 2
Unordered list indentation


108: Expected: 0; Actual: 2
Unordered list indentation


111: Expected: 0; Actual: 2
Unordered list indentation


114: Expected: 0; Actual: 2
Unordered list indentation


115: Expected: 0; Actual: 2
Unordered list indentation


116: Expected: 0; Actual: 2
Unordered list indentation


119: Expected: 0; Actual: 2
Unordered list indentation


122: Expected: 0; Actual: 2
Unordered list indentation


123: Expected: 0; Actual: 2
Unordered list indentation


126: Expected: 0; Actual: 2
Unordered list indentation


127: Expected: 0; Actual: 2
Unordered list indentation


128: Expected: 0; Actual: 2
Unordered list indentation


129: Expected: 0; Actual: 2
Unordered list indentation


130: Expected: 0; Actual: 2
Unordered list indentation


131: Expected: 0; Actual: 2
Unordered list indentation


132: Expected: 0; Actual: 2
Unordered list indentation


135: Expected: 0; Actual: 2
Unordered list indentation


136: Expected: 0; Actual: 2
Unordered list indentation


137: Expected: 0; Actual: 2
Unordered list indentation


140: Expected: 0; Actual: 2
Unordered list indentation


141: Expected: 0; Actual: 2
Unordered list indentation


142: Expected: 0; Actual: 2
Unordered list indentation


145: Expected: 0; Actual: 2
Unordered list indentation


146: Expected: 0; Actual: 2
Unordered list indentation


147: Expected: 0; Actual: 2
Unordered list indentation


148: Expected: 0; Actual: 2
Unordered list indentation


149: Expected: 0; Actual: 2
Unordered list indentation


152: Expected: 0; Actual: 2
Unordered list indentation


153: Expected: 0; Actual: 2
Unordered list indentation


154: Expected: 0; Actual: 2
Unordered list indentation


157: Expected: 0; Actual: 2
Unordered list indentation


158: Expected: 0; Actual: 2
Unordered list indentation


159: Expected: 0; Actual: 2
Unordered list indentation


160: Expected: 0; Actual: 2
Unordered list indentation


161: Expected: 0; Actual: 2
Unordered list indentation


164: Expected: 0; Actual: 2
Unordered list indentation


165: Expected: 0; Actual: 2
Unordered list indentation


166: Expected: 0; Actual: 2
Unordered list indentation


167: Expected: 0; Actual: 2
Unordered list indentation


168: Expected: 0; Actual: 2
Unordered list indentation


169: Expected: 0; Actual: 2
Unordered list indentation


170: Expected: 0; Actual: 2
Unordered list indentation


171: Expected: 0; Actual: 2
Unordered list indentation


172: Expected: 0; Actual: 2
Unordered list indentation


173: Expected: 0; Actual: 2
Unordered list indentation


176: Expected: 0; Actual: 2
Unordered list indentation


177: Expected: 0; Actual: 2
Unordered list indentation


178: Expected: 0; Actual: 2
Unordered list indentation


181: Expected: 0; Actual: 2
Unordered list indentation


182: Expected: 0; Actual: 2
Unordered list indentation


183: Expected: 0; Actual: 2
Unordered list indentation


184: Expected: 0; Actual: 2
Unordered list indentation


185: Expected: 0; Actual: 2
Unordered list indentation


186: Expected: 0; Actual: 2
Unordered list indentation


187: Expected: 0; Actual: 2
Unordered list indentation


188: Expected: 0; Actual: 2
Unordered list indentation


189: Expected: 0; Actual: 2
Unordered list indentation


190: Expected: 0; Actual: 2
Unordered list indentation


191: Expected: 0; Actual: 2
Unordered list indentation


192: Expected: 0; Actual: 2
Unordered list indentation


193: Expected: 0; Actual: 2
Unordered list indentation


194: Expected: 0; Actual: 2
Unordered list indentation


195: Expected: 0; Actual: 2
Unordered list indentation


196: Expected: 0; Actual: 2
Unordered list indentation


197: Expected: 0; Actual: 2
Unordered list indentation


198: Expected: 0; Actual: 2
Unordered list indentation


199: Expected: 0; Actual: 2
Unordered list indentation


200: Expected: 0; Actual: 2
Unordered list indentation


201: Expected: 0; Actual: 2
Unordered list indentation


202: Expected: 0; Actual: 2
Unordered list indentation


205: Expected: 0; Actual: 2
Unordered list indentation


206: Expected: 0; Actual: 2
Unordered list indentation


207: Expected: 0; Actual: 2
Unordered list indentation


210: Expected: 0; Actual: 2
Unordered list indentation


213: Expected: 0; Actual: 2
Unordered list indentation


216: Expected: 0; Actual: 2
Unordered list indentation


217: Expected: 0; Actual: 2
Unordered list indentation


218: Expected: 0; Actual: 2
Unordered list indentation


221: Expected: 0; Actual: 2
Unordered list indentation


222: Expected: 0; Actual: 2
Unordered list indentation


223: Expected: 0; Actual: 2
Unordered list indentation


224: Expected: 0; Actual: 2
Unordered list indentation


227: Expected: 0; Actual: 2
Unordered list indentation


228: Expected: 0; Actual: 2
Unordered list indentation


229: Expected: 0; Actual: 2
Unordered list indentation


230: Expected: 0; Actual: 2
Unordered list indentation


233: Expected: 0; Actual: 2
Unordered list indentation


234: Expected: 0; Actual: 2
Unordered list indentation


235: Expected: 0; Actual: 2
Unordered list indentation


236: Expected: 0; Actual: 2
Unordered list indentation


237: Expected: 0; Actual: 2
Unordered list indentation


240: Expected: 0; Actual: 2
Unordered list indentation


241: Expected: 0; Actual: 2
Unordered list indentation


242: Expected: 0; Actual: 2
Unordered list indentation


243: Expected: 0; Actual: 2
Unordered list indentation


244: Expected: 0; Actual: 2
Unordered list indentation


245: Expected: 0; Actual: 2
Unordered list indentation


246: Expected: 0; Actual: 2
Unordered list indentation


247: Expected: 0; Actual: 2
Unordered list indentation


248: Expected: 0; Actual: 2
Unordered list indentation


249: Expected: 0; Actual: 2
Unordered list indentation


250: Expected: 0; Actual: 2
Unordered list indentation


251: Expected: 0; Actual: 2
Unordered list indentation


252: Expected: 0; Actual: 2
Unordered list indentation


253: Expected: 0; Actual: 2
Unordered list indentation


254: Expected: 0; Actual: 2
Unordered list indentation


255: Expected: 0; Actual: 2
Unordered list indentation


256: Expected: 0; Actual: 2
Unordered list indentation


257: Expected: 0; Actual: 2
Unordered list indentation


260: Expected: 0; Actual: 2
Unordered list indentation


261: Expected: 0; Actual: 2
Unordered list indentation


262: Expected: 0; Actual: 2
Unordered list indentation


263: Expected: 0; Actual: 2
Unordered list indentation


264: Expected: 0; Actual: 2
Unordered list indentation


267: Expected: 0; Actual: 2
Unordered list indentation


268: Expected: 0; Actual: 2
Unordered list indentation


269: Expected: 0; Actual: 2
Unordered list indentation


272: Expected: 0; Actual: 2
Unordered list indentation


273: Expected: 0; Actual: 2
Unordered list indentation


274: Expected: 0; Actual: 2
Unordered list indentation


275: Expected: 0; Actual: 2
Unordered list indentation


276: Expected: 0; Actual: 2
Unordered list indentation


277: Expected: 0; Actual: 2
Unordered list indentation


278: Expected: 0; Actual: 2
Unordered list indentation


279: Expected: 0; Actual: 2
Unordered list indentation


280: Expected: 0; Actual: 2
Unordered list indentation


283: Expected: 0; Actual: 2
Unordered list indentation


284: Expected: 0; Actual: 2
Unordered list indentation


285: Expected: 0; Actual: 2
Unordered list indentation


286: Expected: 0; Actual: 2
Unordered list indentation


287: Expected: 0; Actual: 2
Unordered list indentation


290: Expected: 0; Actual: 2
Unordered list indentation


291: Expected: 0; Actual: 2
Unordered list indentation


292: Expected: 0; Actual: 2
Unordered list indentation


293: Expected: 0; Actual: 2
Unordered list indentation


294: Expected: 0; Actual: 2
Unordered list indentation


295: Expected: 0; Actual: 2
Unordered list indentation


296: Expected: 0; Actual: 2
Unordered list indentation


297: Expected: 0; Actual: 2
Unordered list indentation


298: Expected: 0; Actual: 2
Unordered list indentation


299: Expected: 0; Actual: 2
Unordered list indentation


300: Expected: 0; Actual: 2
Unordered list indentation


301: Expected: 0; Actual: 2
Unordered list indentation


302: Expected: 0; Actual: 2
Unordered list indentation


305: Expected: 0; Actual: 2
Unordered list indentation


306: Expected: 0; Actual: 2
Unordered list indentation


307: Expected: 0; Actual: 2
Unordered list indentation


308: Expected: 0; Actual: 2
Unordered list indentation


309: Expected: 0; Actual: 2
Unordered list indentation


310: Expected: 0; Actual: 2
Unordered list indentation


311: Expected: 0; Actual: 2
Unordered list indentation


314: Expected: 0; Actual: 2
Unordered list indentation


315: Expected: 0; Actual: 2
Unordered list indentation


316: Expected: 0; Actual: 2
Unordered list indentation


317: Expected: 0; Actual: 2
Unordered list indentation


320: Expected: 0; Actual: 2
Unordered list indentation


321: Expected: 0; Actual: 2
Unordered list indentation


322: Expected: 0; Actual: 2
Unordered list indentation


323: Expected: 0; Actual: 2
Unordered list indentation


324: Expected: 0; Actual: 2
Unordered list indentation


325: Expected: 0; Actual: 2
Unordered list indentation


326: Expected: 0; Actual: 2
Unordered list indentation


327: Expected: 0; Actual: 2
Unordered list indentation


328: Expected: 0; Actual: 2
Unordered list indentation


329: Expected: 0; Actual: 2
Unordered list indentation


330: Expected: 0; Actual: 2
Unordered list indentation


331: Expected: 0; Actual: 2
Unordered list indentation


332: Expected: 0; Actual: 2
Unordered list indentation


333: Expected: 0; Actual: 2
Unordered list indentation


334: Expected: 0; Actual: 2
Unordered list indentation


335: Expected: 0; Actual: 2
Unordered list indentation


336: Expected: 0; Actual: 2
Unordered list indentation


337: Expected: 0; Actual: 2
Unordered list indentation


338: Expected: 0; Actual: 2
Unordered list indentation


339: Expected: 0; Actual: 2
Unordered list indentation


340: Expected: 0; Actual: 2
Unordered list indentation


341: Expected: 0; Actual: 2
Unordered list indentation


344: Expected: 0; Actual: 2
Unordered list indentation


345: Expected: 0; Actual: 2
Unordered list indentation


346: Expected: 0; Actual: 2
Unordered list indentation


347: Expected: 0; Actual: 2
Unordered list indentation


348: Expected: 0; Actual: 2
Unordered list indentation


349: Expected: 0; Actual: 2
Unordered list indentation


350: Expected: 0; Actual: 2
Unordered list indentation


351: Expected: 0; Actual: 2
Unordered list indentation


352: Expected: 0; Actual: 2
Unordered list indentation


353: Expected: 0; Actual: 2
Unordered list indentation


354: Expected: 0; Actual: 2
Unordered list indentation


355: Expected: 0; Actual: 2
Unordered list indentation


356: Expected: 0; Actual: 2
Unordered list indentation


357: Expected: 0; Actual: 2
Unordered list indentation


358: Expected: 0; Actual: 2
Unordered list indentation


359: Expected: 0; Actual: 2
Unordered list indentation


360: Expected: 0; Actual: 2
Unordered list indentation


361: Expected: 0; Actual: 2
Unordered list indentation


362: Expected: 0; Actual: 2
Unordered list indentation


365: Expected: 0; Actual: 2
Unordered list indentation


368: Expected: 0; Actual: 2
Unordered list indentation


371: Expected: 0; Actual: 2
Unordered list indentation


372: Expected: 0; Actual: 2
Unordered list indentation


373: Expected: 0; Actual: 2
Unordered list indentation


374: Expected: 0; Actual: 2
Unordered list indentation


375: Expected: 0; Actual: 2
Unordered list indentation


376: Expected: 0; Actual: 2
Unordered list indentation


377: Expected: 0; Actual: 2
Unordered list indentation


378: Expected: 0; Actual: 2
Unordered list indentation


381: Expected: 0; Actual: 2
Unordered list indentation


382: Expected: 0; Actual: 2
Unordered list indentation


383: Expected: 0; Actual: 2
Unordered list indentation


384: Expected: 0; Actual: 2
Unordered list indentation


385: Expected: 0; Actual: 2
Unordered list indentation


386: Expected: 0; Actual: 2
Unordered list indentation


387: Expected: 0; Actual: 2
Unordered list indentation


388: Expected: 0; Actual: 2
Unordered list indentation


389: Expected: 0; Actual: 2
Unordered list indentation


390: Expected: 0; Actual: 2
Unordered list indentation


391: Expected: 0; Actual: 2
Unordered list indentation


392: Expected: 0; Actual: 2
Unordered list indentation


395: Expected: 0; Actual: 2
Unordered list indentation


398: Expected: 0; Actual: 2
Unordered list indentation


399: Expected: 0; Actual: 2
Unordered list indentation


400: Expected: 0; Actual: 2
Unordered list indentation


401: Expected: 0; Actual: 2
Unordered list indentation


402: Expected: 0; Actual: 2
Unordered list indentation


403: Expected: 0; Actual: 2
Unordered list indentation


404: Expected: 0; Actual: 2
Unordered list indentation


405: Expected: 0; Actual: 2
Unordered list indentation


406: Expected: 0; Actual: 2
Unordered list indentation


407: Expected: 0; Actual: 2
Unordered list indentation


410: Expected: 0; Actual: 2
Unordered list indentation


413: Expected: 0; Actual: 2
Unordered list indentation


414: Expected: 0; Actual: 2
Unordered list indentation


415: Expected: 0; Actual: 2
Unordered list indentation


416: Expected: 0; Actual: 2
Unordered list indentation


417: Expected: 0; Actual: 2
Unordered list indentation


418: Expected: 0; Actual: 2
Unordered list indentation


419: Expected: 0; Actual: 2
Unordered list indentation


420: Expected: 0; Actual: 2
Unordered list indentation


421: Expected: 0; Actual: 2
Unordered list indentation


424: Expected: 0; Actual: 2
Unordered list indentation


425: Expected: 0; Actual: 2
Unordered list indentation


426: Expected: 0; Actual: 2
Unordered list indentation


427: Expected: 0; Actual: 2
Unordered list indentation


430: Expected: 0; Actual: 2
Unordered list indentation


431: Expected: 0; Actual: 2
Unordered list indentation


434: Expected: 0; Actual: 2
Unordered list indentation


435: Expected: 0; Actual: 2
Unordered list indentation


436: Expected: 0; Actual: 2
Unordered list indentation


437: Expected: 0; Actual: 2
Unordered list indentation


438: Expected: 0; Actual: 2
Unordered list indentation


439: Expected: 0; Actual: 2
Unordered list indentation


442: Expected: 0; Actual: 2
Unordered list indentation


443: Expected: 0; Actual: 2
Unordered list indentation


444: Expected: 0; Actual: 2
Unordered list indentation


447: Expected: 0; Actual: 2
Unordered list indentation


448: Expected: 0; Actual: 2
Unordered list indentation


449: Expected: 0; Actual: 2
Unordered list indentation


450: Expected: 0; Actual: 2
Unordered list indentation


451: Expected: 0; Actual: 2
Unordered list indentation


452: Expected: 0; Actual: 2
Unordered list indentation


453: Expected: 0; Actual: 2
Unordered list indentation


454: Expected: 0; Actual: 2
Unordered list indentation


455: Expected: 0; Actual: 2
Unordered list indentation


456: Expected: 0; Actual: 2
Unordered list indentation


457: Expected: 0; Actual: 2
Unordered list indentation


458: Expected: 0; Actual: 2
Unordered list indentation


459: Expected: 0; Actual: 2
Unordered list indentation


460: Expected: 0; Actual: 2
Unordered list indentation


461: Expected: 0; Actual: 2
Unordered list indentation


462: Expected: 0; Actual: 2
Unordered list indentation


463: Expected: 0; Actual: 2
Unordered list indentation


464: Expected: 0; Actual: 2
Unordered list indentation


465: Expected: 0; Actual: 2
Unordered list indentation


466: Expected: 0; Actual: 2
Unordered list indentation


467: Expected: 0; Actual: 2
Unordered list indentation


468: Expected: 0; Actual: 2
Unordered list indentation


469: Expected: 0; Actual: 2
Unordered list indentation


470: Expected: 0; Actual: 2
Unordered list indentation


471: Expected: 0; Actual: 2
Unordered list indentation


472: Expected: 0; Actual: 2
Unordered list indentation


473: Expected: 0; Actual: 2
Unordered list indentation


474: Expected: 0; Actual: 2
Unordered list indentation


475: Expected: 0; Actual: 2
Unordered list indentation


478: Expected: 0; Actual: 2
Unordered list indentation


479: Expected: 0; Actual: 2
Unordered list indentation


480: Expected: 0; Actual: 2
Unordered list indentation


481: Expected: 0; Actual: 2
Unordered list indentation


482: Expected: 0; Actual: 2
Unordered list indentation


483: Expected: 0; Actual: 2
Unordered list indentation


484: Expected: 0; Actual: 2
Unordered list indentation


485: Expected: 0; Actual: 2
Unordered list indentation


486: Expected: 0; Actual: 2
Unordered list indentation


487: Expected: 0; Actual: 2
Unordered list indentation


488: Expected: 0; Actual: 2
Unordered list indentation


489: Expected: 0; Actual: 2
Unordered list indentation


492: Expected: 0; Actual: 2
Unordered list indentation


493: Expected: 0; Actual: 2
Unordered list indentation


494: Expected: 0; Actual: 2
Unordered list indentation


495: Expected: 0; Actual: 2
Unordered list indentation


498: Expected: 0; Actual: 2
Unordered list indentation


499: Expected: 0; Actual: 2
Unordered list indentation


500: Expected: 0; Actual: 2
Unordered list indentation


501: Expected: 0; Actual: 2
Unordered list indentation


502: Expected: 0; Actual: 2
Unordered list indentation


503: Expected: 0; Actual: 2
Unordered list indentation


504: Expected: 0; Actual: 2
Unordered list indentation


505: Expected: 0; Actual: 2
Unordered list indentation


506: Expected: 0; Actual: 2
Unordered list indentation


507: Expected: 0; Actual: 2
Unordered list indentation


508: Expected: 0; Actual: 2
Unordered list indentation


509: Expected: 0; Actual: 2
Unordered list indentation


510: Expected: 0; Actual: 2
Unordered list indentation


511: Expected: 0; Actual: 2
Unordered list indentation


512: Expected: 0; Actual: 2
Unordered list indentation


513: Expected: 0; Actual: 2
Unordered list indentation


514: Expected: 0; Actual: 2
Unordered list indentation


515: Expected: 0; Actual: 2
Unordered list indentation


516: Expected: 0; Actual: 2
Unordered list indentation


517: Expected: 0; Actual: 2
Unordered list indentation


518: Expected: 0; Actual: 2
Unordered list indentation


519: Expected: 0; Actual: 2
Unordered list indentation


520: Expected: 0; Actual: 2
Unordered list indentation


521: Expected: 0; Actual: 2
Unordered list indentation


522: Expected: 0; Actual: 2
Unordered list indentation


523: Expected: 0; Actual: 2
Unordered list indentation


524: Expected: 0; Actual: 2
Unordered list indentation


525: Expected: 0; Actual: 2
Unordered list indentation


526: Expected: 0; Actual: 2
Unordered list indentation


527: Expected: 0; Actual: 2
Unordered list indentation


528: Expected: 0; Actual: 2
Unordered list indentation


529: Expected: 0; Actual: 2
Unordered list indentation


530: Expected: 0; Actual: 2
Unordered list indentation


531: Expected: 0; Actual: 2
Unordered list indentation


532: Expected: 0; Actual: 2
Unordered list indentation


533: Expected: 0; Actual: 2
Unordered list indentation


534: Expected: 0; Actual: 2
Unordered list indentation


535: Expected: 0; Actual: 2
Unordered list indentation


536: Expected: 0; Actual: 2
Unordered list indentation


537: Expected: 0; Actual: 2
Unordered list indentation


538: Expected: 0; Actual: 2
Unordered list indentation


539: Expected: 0; Actual: 2
Unordered list indentation


540: Expected: 0; Actual: 2
Unordered list indentation


541: Expected: 0; Actual: 2
Unordered list indentation


542: Expected: 0; Actual: 2
Unordered list indentation


543: Expected: 0; Actual: 2
Unordered list indentation


544: Expected: 0; Actual: 2
Unordered list indentation


545: Expected: 0; Actual: 2
Unordered list indentation


546: Expected: 0; Actual: 2
Unordered list indentation


547: Expected: 0; Actual: 2
Unordered list indentation


548: Expected: 0; Actual: 2
Unordered list indentation


549: Expected: 0; Actual: 2
Unordered list indentation


550: Expected: 0; Actual: 2
Unordered list indentation


551: Expected: 0; Actual: 2
Unordered list indentation


552: Expected: 0; Actual: 2
Unordered list indentation


553: Expected: 0; Actual: 2
Unordered list indentation


554: Expected: 0; Actual: 2
Unordered list indentation


555: Expected: 0; Actual: 2
Unordered list indentation


556: Expected: 0; Actual: 2
Unordered list indentation


557: Expected: 0; Actual: 2
Unordered list indentation


558: Expected: 0; Actual: 2
Unordered list indentation


559: Expected: 0; Actual: 2
Unordered list indentation


560: Expected: 0; Actual: 2
Unordered list indentation


561: Expected: 0; Actual: 2
Unordered list indentation


562: Expected: 0; Actual: 2
Unordered list indentation


563: Expected: 0; Actual: 2
Unordered list indentation


564: Expected: 0; Actual: 2
Unordered list indentation


565: Expected: 0; Actual: 2
Unordered list indentation


566: Expected: 0; Actual: 2
Unordered list indentation


567: Expected: 0; Actual: 2
Unordered list indentation


568: Expected: 0; Actual: 2
Unordered list indentation


569: Expected: 0; Actual: 2
Unordered list indentation


572: Expected: 0; Actual: 2
Unordered list indentation


573: Expected: 0; Actual: 2
Unordered list indentation


574: Expected: 0; Actual: 2
Unordered list indentation


575: Expected: 0; Actual: 2
Unordered list indentation


576: Expected: 0; Actual: 2
Unordered list indentation


577: Expected: 0; Actual: 2
Unordered list indentation


578: Expected: 0; Actual: 2
Unordered list indentation


579: Expected: 0; Actual: 2
Unordered list indentation


580: Expected: 0; Actual: 2
Unordered list indentation


581: Expected: 0; Actual: 2
Unordered list indentation


582: Expected: 0; Actual: 2
Unordered list indentation


583: Expected: 0; Actual: 2
Unordered list indentation


584: Expected: 0; Actual: 2
Unordered list indentation


585: Expected: 0; Actual: 2
Unordered list indentation


586: Expected: 0; Actual: 2
Unordered list indentation


587: Expected: 0; Actual: 2
Unordered list indentation


588: Expected: 0; Actual: 2
Unordered list indentation


589: Expected: 0; Actual: 2
Unordered list indentation


590: Expected: 0; Actual: 2
Unordered list indentation


591: Expected: 0; Actual: 2
Unordered list indentation


592: Expected: 0; Actual: 2
Unordered list indentation


593: Expected: 0; Actual: 2
Unordered list indentation


594: Expected: 0; Actual: 2
Unordered list indentation


595: Expected: 0; Actual: 2
Unordered list indentation


596: Expected: 0; Actual: 2
Unordered list indentation


597: Expected: 0; Actual: 2
Unordered list indentation


598: Expected: 0; Actual: 2
Unordered list indentation


599: Expected: 0; Actual: 2
Unordered list indentation


600: Expected: 0; Actual: 2
Unordered list indentation


601: Expected: 0; Actual: 2
Unordered list indentation


602: Expected: 0; Actual: 2
Unordered list indentation


605: Expected: 0; Actual: 2
Unordered list indentation


606: Expected: 0; Actual: 2
Unordered list indentation


607: Expected: 0; Actual: 2
Unordered list indentation


608: Expected: 0; Actual: 2
Unordered list indentation


609: Expected: 0; Actual: 2
Unordered list indentation


610: Expected: 0; Actual: 2
Unordered list indentation


611: Expected: 0; Actual: 2
Unordered list indentation


612: Expected: 0; Actual: 2
Unordered list indentation


613: Expected: 0; Actual: 2
Unordered list indentation


614: Expected: 0; Actual: 2
Unordered list indentation


615: Expected: 0; Actual: 2
Unordered list indentation


616: Expected: 0; Actual: 2
Unordered list indentation


617: Expected: 0; Actual: 2
Unordered list indentation


618: Expected: 0; Actual: 2
Unordered list indentation


619: Expected: 0; Actual: 2
Unordered list indentation


622: Expected: 0; Actual: 2
Unordered list indentation


623: Expected: 0; Actual: 2
Unordered list indentation


624: Expected: 0; Actual: 2
Unordered list indentation


625: Expected: 0; Actual: 2
Unordered list indentation


626: Expected: 0; Actual: 2
Unordered list indentation


627: Expected: 0; Actual: 2
Unordered list indentation


628: Expected: 0; Actual: 2
Unordered list indentation


629: Expected: 0; Actual: 2
Unordered list indentation


630: Expected: 0; Actual: 2
Unordered list indentation


631: Expected: 0; Actual: 2
Unordered list indentation


632: Expected: 0; Actual: 2
Unordered list indentation


633: Expected: 0; Actual: 2
Unordered list indentation


634: Expected: 0; Actual: 2
Unordered list indentation


635: Expected: 0; Actual: 2
Unordered list indentation


636: Expected: 0; Actual: 2
Unordered list indentation


637: Expected: 0; Actual: 2
Unordered list indentation


638: Expected: 0; Actual: 2
Unordered list indentation


639: Expected: 0; Actual: 2
Unordered list indentation


640: Expected: 0; Actual: 2
Unordered list indentation


641: Expected: 0; Actual: 2
Unordered list indentation


644: Expected: 0; Actual: 2
Unordered list indentation


645: Expected: 0; Actual: 2
Unordered list indentation


646: Expected: 0; Actual: 2
Unordered list indentation


647: Expected: 0; Actual: 2
Unordered list indentation


648: Expected: 0; Actual: 2
Unordered list indentation


649: Expected: 0; Actual: 2
Unordered list indentation


650: Expected: 0; Actual: 2
Unordered list indentation


651: Expected: 0; Actual: 2
Unordered list indentation


652: Expected: 0; Actual: 2
Unordered list indentation


653: Expected: 0; Actual: 2
Unordered list indentation


654: Expected: 0; Actual: 2
Unordered list indentation


655: Expected: 0; Actual: 2
Unordered list indentation


656: Expected: 0; Actual: 2
Unordered list indentation


657: Expected: 0; Actual: 2
Unordered list indentation


658: Expected: 0; Actual: 2
Unordered list indentation


659: Expected: 0; Actual: 2
Unordered list indentation


660: Expected: 0; Actual: 2
Unordered list indentation


661: Expected: 0; Actual: 2
Unordered list indentation


662: Expected: 0; Actual: 2
Unordered list indentation


663: Expected: 0; Actual: 2
Unordered list indentation


664: Expected: 0; Actual: 2
Unordered list indentation


665: Expected: 0; Actual: 2
Unordered list indentation


666: Expected: 0; Actual: 2
Unordered list indentation


667: Expected: 0; Actual: 2
Unordered list indentation


668: Expected: 0; Actual: 2
Unordered list indentation


669: Expected: 0; Actual: 2
Unordered list indentation


670: Expected: 0; Actual: 2
Unordered list indentation


671: Expected: 0; Actual: 2
Unordered list indentation


674: Expected: 0; Actual: 2
Unordered list indentation


675: Expected: 0; Actual: 2
Unordered list indentation


676: Expected: 0; Actual: 2
Unordered list indentation


677: Expected: 0; Actual: 2
Unordered list indentation


678: Expected: 0; Actual: 2
Unordered list indentation


679: Expected: 0; Actual: 2
Unordered list indentation


680: Expected: 0; Actual: 2
Unordered list indentation


683: Expected: 0; Actual: 2
Unordered list indentation


684: Expected: 0; Actual: 2
Unordered list indentation


685: Expected: 0; Actual: 2
Unordered list indentation


686: Expected: 0; Actual: 2
Unordered list indentation


687: Expected: 0; Actual: 2
Unordered list indentation


688: Expected: 0; Actual: 2
Unordered list indentation


691: Expected: 0; Actual: 2
Unordered list indentation


692: Expected: 0; Actual: 2
Unordered list indentation


693: Expected: 0; Actual: 2
Unordered list indentation


694: Expected: 0; Actual: 2
Unordered list indentation


695: Expected: 0; Actual: 2
Unordered list indentation


696: Expected: 0; Actual: 2
Unordered list indentation


697: Expected: 0; Actual: 2
Unordered list indentation


698: Expected: 0; Actual: 2
Unordered list indentation


699: Expected: 0; Actual: 2
Unordered list indentation


700: Expected: 0; Actual: 2
Unordered list indentation


701: Expected: 0; Actual: 2
Unordered list indentation


702: Expected: 0; Actual: 2
Unordered list indentation


703: Expected: 0; Actual: 2
Unordered list indentation


704: Expected: 0; Actual: 2
Unordered list indentation


705: Expected: 0; Actual: 2
Unordered list indentation


706: Expected: 0; Actual: 2
Unordered list indentation


709: Expected: 0; Actual: 2
Unordered list indentation


710: Expected: 0; Actual: 2
Unordered list indentation


711: Expected: 0; Actual: 2
Unordered list indentation


712: Expected: 0; Actual: 2
Unordered list indentation


713: Expected: 0; Actual: 2
Unordered list indentation


714: Expected: 0; Actual: 2
Unordered list indentation


715: Expected: 0; Actual: 2
Unordered list indentation


716: Expected: 0; Actual: 2
Unordered list indentation


717: Expected: 0; Actual: 2
Unordered list indentation


718: Expected: 0; Actual: 2
Unordered list indentation


719: Expected: 0; Actual: 2
Unordered list indentation


722: Expected: 0; Actual: 2
Unordered list indentation


723: Expected: 0; Actual: 2
Unordered list indentation


724: Expected: 0; Actual: 2
Unordered list indentation


725: Expected: 0; Actual: 2
Unordered list indentation


726: Expected: 0; Actual: 2
Unordered list indentation


727: Expected: 0; Actual: 2
Unordered list indentation


728: Expected: 0; Actual: 2
Unordered list indentation


729: Expected: 0; Actual: 2
Unordered list indentation


730: Expected: 0; Actual: 2
Unordered list indentation


731: Expected: 0; Actual: 2
Unordered list indentation


732: Expected: 0; Actual: 2
Unordered list indentation


733: Expected: 0; Actual: 2
Unordered list indentation


734: Expected: 0; Actual: 2
Unordered list indentation


735: Expected: 0; Actual: 2
Unordered list indentation


736: Expected: 0; Actual: 2
Unordered list indentation


737: Expected: 0; Actual: 2
Unordered list indentation


740: Expected: 0; Actual: 2
Unordered list indentation


741: Expected: 0; Actual: 2
Unordered list indentation


742: Expected: 0; Actual: 2
Unordered list indentation


743: Expected: 0; Actual: 2
Unordered list indentation


744: Expected: 0; Actual: 2
Unordered list indentation


745: Expected: 0; Actual: 2
Unordered list indentation


746: Expected: 0; Actual: 2
Unordered list indentation


747: Expected: 0; Actual: 2
Unordered list indentation


748: Expected: 0; Actual: 2
Unordered list indentation


749: Expected: 0; Actual: 2
Unordered list indentation


752: Expected: 0; Actual: 2
Unordered list indentation


753: Expected: 0; Actual: 2
Unordered list indentation


754: Expected: 0; Actual: 2
Unordered list indentation


755: Expected: 0; Actual: 2
Unordered list indentation


758: Expected: 0; Actual: 2
Unordered list indentation


759: Expected: 0; Actual: 2
Unordered list indentation


760: Expected: 0; Actual: 2
Unordered list indentation


761: Expected: 0; Actual: 2
Unordered list indentation


762: Expected: 0; Actual: 2
Unordered list indentation


763: Expected: 0; Actual: 2
Unordered list indentation


764: Expected: 0; Actual: 2
Unordered list indentation


765: Expected: 0; Actual: 2
Unordered list indentation


766: Expected: 0; Actual: 2
Unordered list indentation


767: Expected: 0; Actual: 2
Unordered list indentation


768: Expected: 0; Actual: 2
Unordered list indentation


769: Expected: 0; Actual: 2
Unordered list indentation


770: Expected: 0; Actual: 2
Unordered list indentation


771: Expected: 0; Actual: 2
Unordered list indentation


772: Expected: 0; Actual: 2
Unordered list indentation


773: Expected: 0; Actual: 2
Unordered list indentation


774: Expected: 0; Actual: 2
Unordered list indentation


775: Expected: 0; Actual: 2
Unordered list indentation


776: Expected: 0; Actual: 2
Unordered list indentation


777: Expected: 0; Actual: 2
Unordered list indentation


780: Expected: 0; Actual: 2
Unordered list indentation


781: Expected: 0; Actual: 2
Unordered list indentation


784: Expected: 0; Actual: 2
Unordered list indentation


785: Expected: 0; Actual: 2
Unordered list indentation


786: Expected: 0; Actual: 2
Unordered list indentation


789: Expected: 0; Actual: 2
Unordered list indentation


790: Expected: 0; Actual: 2
Unordered list indentation


793: Expected: 0; Actual: 2
Unordered list indentation


794: Expected: 0; Actual: 2
Unordered list indentation


795: Expected: 0; Actual: 2
Unordered list indentation


796: Expected: 0; Actual: 2
Unordered list indentation


797: Expected: 0; Actual: 2
Unordered list indentation


798: Expected: 0; Actual: 2
Unordered list indentation


799: Expected: 0; Actual: 2
Unordered list indentation


800: Expected: 0; Actual: 2
Unordered list indentation


803: Expected: 0; Actual: 2
Unordered list indentation


804: Expected: 0; Actual: 2
Unordered list indentation


805: Expected: 0; Actual: 2
Unordered list indentation


806: Expected: 0; Actual: 2
Unordered list indentation


807: Expected: 0; Actual: 2
Unordered list indentation


808: Expected: 0; Actual: 2
Unordered list indentation


809: Expected: 0; Actual: 2
Unordered list indentation


810: Expected: 0; Actual: 2
Unordered list indentation


811: Expected: 0; Actual: 2
Unordered list indentation


812: Expected: 0; Actual: 2
Unordered list indentation


813: Expected: 0; Actual: 2
Unordered list indentation


814: Expected: 0; Actual: 2
Unordered list indentation


815: Expected: 0; Actual: 2
Unordered list indentation


816: Expected: 0; Actual: 2
Unordered list indentation


817: Expected: 0; Actual: 2
Unordered list indentation


818: Expected: 0; Actual: 2
Unordered list indentation


819: Expected: 0; Actual: 2
Unordered list indentation


820: Expected: 0; Actual: 2
Unordered list indentation


821: Expected: 0; Actual: 2
Unordered list indentation


822: Expected: 0; Actual: 2
Unordered list indentation


823: Expected: 0; Actual: 2
Unordered list indentation


824: Expected: 0; Actual: 2
Unordered list indentation


825: Expected: 0; Actual: 2
Unordered list indentation


826: Expected: 0; Actual: 2
Unordered list indentation


827: Expected: 0; Actual: 2
Unordered list indentation


828: Expected: 0; Actual: 2
Unordered list indentation


829: Expected: 0; Actual: 2
Unordered list indentation


830: Expected: 0; Actual: 2
Unordered list indentation


833: Expected: 0; Actual: 2
Unordered list indentation


834: Expected: 0; Actual: 2
Unordered list indentation


835: Expected: 0; Actual: 2
Unordered list indentation


836: Expected: 0; Actual: 2
Unordered list indentation


837: Expected: 0; Actual: 2
Unordered list indentation


838: Expected: 0; Actual: 2
Unordered list indentation


839: Expected: 0; Actual: 2
Unordered list indentation


840: Expected: 0; Actual: 2
Unordered list indentation


841: Expected: 0; Actual: 2
Unordered list indentation


842: Expected: 0; Actual: 2
Unordered list indentation


845: Expected: 0; Actual: 2
Unordered list indentation


846: Expected: 0; Actual: 2
Unordered list indentation


847: Expected: 0; Actual: 2
Unordered list indentation


848: Expected: 0; Actual: 2
Unordered list indentation


849: Expected: 0; Actual: 2
Unordered list indentation


850: Expected: 0; Actual: 2
Unordered list indentation


851: Expected: 0; Actual: 2
Unordered list indentation


852: Expected: 0; Actual: 2
Unordered list indentation


855: Expected: 0; Actual: 2
Unordered list indentation


856: Expected: 0; Actual: 2
Unordered list indentation


857: Expected: 0; Actual: 2
Unordered list indentation


858: Expected: 0; Actual: 2
Unordered list indentation


859: Expected: 0; Actual: 2
Unordered list indentation


860: Expected: 0; Actual: 2
Unordered list indentation


861: Expected: 0; Actual: 2
Unordered list indentation


862: Expected: 0; Actual: 2
Unordered list indentation


863: Expected: 0; Actual: 2
Unordered list indentation


864: Expected: 0; Actual: 2
Unordered list indentation


865: Expected: 0; Actual: 2
Unordered list indentation


866: Expected: 0; Actual: 2
Unordered list indentation


867: Expected: 0; Actual: 2
Unordered list indentation


870: Expected: 0; Actual: 2
Unordered list indentation


871: Expected: 0; Actual: 2
Unordered list indentation


872: Expected: 0; Actual: 2
Unordered list indentation


873: Expected: 0; Actual: 2
Unordered list indentation


874: Expected: 0; Actual: 2
Unordered list indentation


875: Expected: 0; Actual: 2
Unordered list indentation


876: Expected: 0; Actual: 2
Unordered list indentation


877: Expected: 0; Actual: 2
Unordered list indentation


878: Expected: 0; Actual: 2
Unordered list indentation


879: Expected: 0; Actual: 2
Unordered list indentation


880: Expected: 0; Actual: 2
Unordered list indentation


881: Expected: 0; Actual: 2
Unordered list indentation


882: Expected: 0; Actual: 2
Unordered list indentation


883: Expected: 0; Actual: 2
Unordered list indentation


884: Expected: 0; Actual: 2
Unordered list indentation


885: Expected: 0; Actual: 2
Unordered list indentation


886: Expected: 0; Actual: 2
Unordered list indentation


889: Expected: 0; Actual: 2
Unordered list indentation


890: Expected: 0; Actual: 2
Unordered list indentation


891: Expected: 0; Actual: 2
Unordered list indentation


892: Expected: 0; Actual: 2
Unordered list indentation


893: Expected: 0; Actual: 2
Unordered list indentation


894: Expected: 0; Actual: 2
Unordered list indentation


895: Expected: 0; Actual: 2
Unordered list indentation


896: Expected: 0; Actual: 2
Unordered list indentation


897: Expected: 0; Actual: 2
Unordered list indentation


898: Expected: 0; Actual: 2
Unordered list indentation


899: Expected: 0; Actual: 2
Unordered list indentation


902: Expected: 0; Actual: 2
Unordered list indentation


903: Expected: 0; Actual: 2
Unordered list indentation


904: Expected: 0; Actual: 2
Unordered list indentation


905: Expected: 0; Actual: 2
Unordered list indentation


906: Expected: 0; Actual: 2
Unordered list indentation


907: Expected: 0; Actual: 2
Unordered list indentation


908: Expected: 0; Actual: 2
Unordered list indentation


909: Expected: 0; Actual: 2
Unordered list indentation


910: Expected: 0; Actual: 2
Unordered list indentation


911: Expected: 0; Actual: 2
Unordered list indentation


912: Expected: 0; Actual: 2
Unordered list indentation


913: Expected: 0; Actual: 2
Unordered list indentation


914: Expected: 0; Actual: 2
Unordered list indentation


917: Expected: 0; Actual: 2
Unordered list indentation


918: Expected: 0; Actual: 2
Unordered list indentation


919: Expected: 0; Actual: 2
Unordered list indentation


920: Expected: 0; Actual: 2
Unordered list indentation


921: Expected: 0; Actual: 2
Unordered list indentation


924: Expected: 0; Actual: 2
Unordered list indentation


927: Expected: 0; Actual: 2
Unordered list indentation


928: Expected: 0; Actual: 2
Unordered list indentation


929: Expected: 0; Actual: 2
Unordered list indentation


930: Expected: 0; Actual: 2
Unordered list indentation


933: Expected: 0; Actual: 2
Unordered list indentation


934: Expected: 0; Actual: 2
Unordered list indentation


935: Expected: 0; Actual: 2
Unordered list indentation


936: Expected: 0; Actual: 2
Unordered list indentation


937: Expected: 0; Actual: 2
Unordered list indentation


938: Expected: 0; Actual: 2
Unordered list indentation


939: Expected: 0; Actual: 2
Unordered list indentation


940: Expected: 0; Actual: 2
Unordered list indentation


941: Expected: 0; Actual: 2
Unordered list indentation


944: Expected: 0; Actual: 2
Unordered list indentation


945: Expected: 0; Actual: 2
Unordered list indentation


946: Expected: 0; Actual: 2
Unordered list indentation


947: Expected: 0; Actual: 2
Unordered list indentation


19: Expected: 0 or 2; Actual: 1
Trailing spaces


88: Expected: 0 or 2; Actual: 1
Trailing spaces


98: Expected: 0 or 2; Actual: 1
Trailing spaces


106: Expected: 0 or 2; Actual: 1
Trailing spaces


3: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


8: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


13: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


16: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


21: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


24: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


28: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


32: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


35: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


39: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


42: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


45: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


48: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


51: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


55: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


59: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


65: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


69: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


73: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


77: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


80: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


86: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


90: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


94: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


97: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


100: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


103: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


110: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


113: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


118: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


121: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


125: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


134: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


139: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


144: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


151: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


156: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


163: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


175: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


180: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


204: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


209: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


212: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


215: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


220: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


226: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


232: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


239: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


259: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


266: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


271: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


282: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


289: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


304: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


313: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


319: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


343: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


364: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


367: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


370: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


380: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


394: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


397: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


409: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


412: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


423: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


429: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


433: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


441: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


446: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


477: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


491: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


497: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


571: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


604: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


621: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


643: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


673: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


682: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


690: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


708: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


721: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


739: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


751: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


757: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


779: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


783: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


788: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


792: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


802: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


832: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


844: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


854: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


869: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


888: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


901: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


916: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


923: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


926: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


932: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


943: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines


4: null
Lists should be surrounded by blank lines


9: null
Lists should be surrounded by blank lines


14: null
Lists should be surrounded by blank lines


17: null
Lists should be surrounded by blank lines


22: null
Lists should be surrounded by blank lines


25: null
Lists should be surrounded by blank lines


29: null
Lists should be surrounded by blank lines


33: null
Lists should be surrounded by blank lines


36: null
Lists should be surrounded by blank lines


40: null
Lists should be surrounded by blank lines


43: null
Lists should be surrounded by blank lines


46: null
Lists should be surrounded by blank lines


49: null
Lists should be surrounded by blank lines


52: null
Lists should be surrounded by blank lines


56: null
Lists should be surrounded by blank lines


60: null
Lists should be surrounded by blank lines


66: null
Lists should be surrounded by blank lines


70: null
Lists should be surrounded by blank lines


74: null
Lists should be surrounded by blank lines


78: null
Lists should be surrounded by blank lines


81: null
Lists should be surrounded by blank lines


87: null
Lists should be surrounded by blank lines


91: null
Lists should be surrounded by blank lines


95: null
Lists should be surrounded by blank lines


98: null
Lists should be surrounded by blank lines


101: null
Lists should be surrounded by blank lines


104: null
Lists should be surrounded by blank lines


111: null
Lists should be surrounded by blank lines


114: null
Lists should be surrounded by blank lines


119: null
Lists should be surrounded by blank lines


122: null
Lists should be surrounded by blank lines


126: null
Lists should be surrounded by blank lines


135: null
Lists should be surrounded by blank lines


140: null
Lists should be surrounded by blank lines


145: null
Lists should be surrounded by blank lines


152: null
Lists should be surrounded by blank lines


157: null
Lists should be surrounded by blank lines


164: null
Lists should be surrounded by blank lines


176: null
Lists should be surrounded by blank lines


181: null
Lists should be surrounded by blank lines


205: null
Lists should be surrounded by blank lines


210: null
Lists should be surrounded by blank lines


213: null
Lists should be surrounded by blank lines


216: null
Lists should be surrounded by blank lines


221: null
Lists should be surrounded by blank lines


227: null
Lists should be surrounded by blank lines


233: null
Lists should be surrounded by blank lines


240: null
Lists should be surrounded by blank lines


260: null
Lists should be surrounded by blank lines


267: null
Lists should be surrounded by blank lines


272: null
Lists should be surrounded by blank lines


283: null
Lists should be surrounded by blank lines


290: null
Lists should be surrounded by blank lines


305: null
Lists should be surrounded by blank lines


314: null
Lists should be surrounded by blank lines


320: null
Lists should be surrounded by blank lines


344: null
Lists should be surrounded by blank lines


365: null
Lists should be surrounded by blank lines


368: null
Lists should be surrounded by blank lines


371: null
Lists should be surrounded by blank lines


381: null
Lists should be surrounded by blank lines


395: null
Lists should be surrounded by blank lines


398: null
Lists should be surrounded by blank lines


410: null
Lists should be surrounded by blank lines


413: null
Lists should be surrounded by blank lines


424: null
Lists should be surrounded by blank lines


430: null
Lists should be surrounded by blank lines


434: null
Lists should be surrounded by blank lines


442: null
Lists should be surrounded by blank lines


447: null
Lists should be surrounded by blank lines


478: null
Lists should be surrounded by blank lines


492: null
Lists should be surrounded by blank lines


498: null
Lists should be surrounded by blank lines


572: null
Lists should be surrounded by blank lines


605: null
Lists should be surrounded by blank lines


622: null
Lists should be surrounded by blank lines


644: null
Lists should be surrounded by blank lines


674: null
Lists should be surrounded by blank lines


683: null
Lists should be surrounded by blank lines


691: null
Lists should be surrounded by blank lines


709: null
Lists should be surrounded by blank lines


722: null
Lists should be surrounded by blank lines


740: null
Lists should be surrounded by blank lines


752: null
Lists should be surrounded by blank lines


758: null
Lists should be surrounded by blank lines


780: null
Lists should be surrounded by blank lines


784: null
Lists should be surrounded by blank lines


789: null
Lists should be surrounded by blank lines


793: null
Lists should be surrounded by blank lines


803: null
Lists should be surrounded by blank lines


833: null
Lists should be surrounded by blank lines


845: null
Lists should be surrounded by blank lines


855: null
Lists should be surrounded by blank lines


870: null
Lists should be surrounded by blank lines


889: null
Lists should be surrounded by blank lines


902: null
Lists should be surrounded by blank lines


917: null
Lists should be surrounded by blank lines


924: null
Lists should be surrounded by blank lines


927: null
Lists should be surrounded by blank lines


933: null
Lists should be surrounded by blank lines


944: null
Lists should be surrounded by blank lines


67: null
Bare URL used


136: null
Bare URL used


234: null
Bare URL used


284: null
Bare URL used


316: null
Bare URL used


374: null
Bare URL used


442: null
Bare URL used


702: null
Bare URL used


803: null
Bare URL used


921: null
Bare URL used


253: null
Spaces inside emphasis markers

CHANGELOG.md Show resolved Hide resolved
CHANGELOG.md Show resolved Hide resolved
CHANGELOG.md Show resolved Hide resolved
CHANGELOG.md Show resolved Hide resolved
CHANGELOG.md Show resolved Hide resolved
CHANGELOG.md Show resolved Hide resolved
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: 3

📜 Review details

Configuration used: CodeRabbit UI
Review profile: ASSERTIVE

📥 Commits

Files that changed from the base of the PR and between e85e9c7 and d3f8865.

📒 Files selected for processing (2)
  • CHANGELOG.md (1 hunks)
  • build.gradle (6 hunks)
🧰 Additional context used
🪛 LanguageTool
CHANGELOG.md

[typographical] ~3-~3: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...# Prowide Core - CHANGELOG #### 10.1.17 - October 2024 * Added new FieldEnum w...

(DASH_RULE)


[typographical] ~7-~7: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...per CodeQL recommendations #### 10.1.16 - June 2024 * (PW-1913) Added IBAN valid...

(DASH_RULE)


[typographical] ~10-~10: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...pt local account structure #### 10.1.15 - May 2024 * (PW-1862) Added NarrativeFr...

(DASH_RULE)


[typographical] ~15-~15: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...helper method to field 37K #### 10.1.14 - March 2024 * (PW-1812) Updated the nar...

(DASH_RULE)


[typographical] ~20-~20: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ... in the SafeXmlUtils class #### 10.1.13 - December 2023 * (PW-1718) Changed the ...

(DASH_RULE)


[typographical] ~23-~23: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ... existing API in Field50F) #### 10.1.12 - November 2023 * (PW-1697) Fixed valida...

(DASH_RULE)


[typographical] ~28-~28: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...the BIC branch name logic #### 10.1.11 - November 2023 * (PW-1697) Fixed valida...

(DASH_RULE)


[typographical] ~31-~31: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...ds 14[H,K,L,M,N,O] and 29J #### 10.1.10 - November 2023 * (PW-1695) Fixed a stac...

(DASH_RULE)

🪛 Markdownlint
CHANGELOG.md

3-3: Expected: h2; Actual: h4
Heading levels should only increment by one level at a time

(MD001, heading-increment)


4-4: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


5-5: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


8-8: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


11-11: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


12-12: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


13-13: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


16-16: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


17-17: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


18-18: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


21-21: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


24-24: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


25-25: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


26-26: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


29-29: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


32-32: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


33-33: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


36-36: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


37-37: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


40-40: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


43-43: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


44-44: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


47-47: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


50-50: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


53-53: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


56-56: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


59-59: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


60-60: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


63-63: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


64-64: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


67-67: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


68-68: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


69-69: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


26-26: Expected: 0 or 2; Actual: 1
Trailing spaces

(MD009, no-trailing-spaces)


3-3: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


7-7: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


10-10: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


15-15: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


20-20: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


23-23: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


28-28: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


31-31: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


35-35: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


39-39: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


42-42: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


46-46: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


49-49: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


52-52: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


55-55: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


58-58: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


62-62: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


66-66: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


4-4: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


8-8: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


11-11: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


16-16: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


21-21: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


24-24: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


29-29: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


32-32: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


36-36: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


40-40: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


43-43: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


47-47: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


50-50: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


53-53: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


56-56: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


59-59: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


63-63: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


67-67: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

🔇 Additional comments (24)
CHANGELOG.md (18)

3-5: LGTM: New features and improvements in version 10.1.17

The changes in this version look good:

  1. Addition of a new FieldEnum for available field names, which should improve code readability and maintainability.
  2. Code security improvements based on CodeQL recommendations, which is a positive step towards enhancing the overall security of the library.

These changes appear to be beneficial for the project.

🧰 Tools
🪛 LanguageTool

[typographical] ~3-~3: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...# Prowide Core - CHANGELOG #### 10.1.17 - October 2024 * Added new FieldEnum w...

(DASH_RULE)

🪛 Markdownlint

3-3: Expected: h2; Actual: h4
Heading levels should only increment by one level at a time

(MD001, heading-increment)


4-4: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


5-5: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


3-3: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


4-4: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


7-8: LGTM: IBAN validation enhancement

The addition of IBAN validation for Egypt's local account structure (PW-1913) is a valuable improvement. This enhancement will help ensure the validity of Egyptian IBANs, which is crucial for financial transactions involving Egyptian accounts.

🧰 Tools
🪛 LanguageTool

[typographical] ~7-~7: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...per CodeQL recommendations #### 10.1.16 - June 2024 * (PW-1913) Added IBAN valid...

(DASH_RULE)

🪛 Markdownlint

8-8: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


7-7: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


8-8: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


15-18: LGTM: Improvements in narrative handling and validation

The changes in version 10.1.14 look good:

  1. Updating the narrative resolver for format 2 to allow empty values as part of the narrative fragment improves flexibility.
  2. Updating validators for BIC, country, and currency constraints to use keywords for i18n-compatible messages enhances internationalization support.
  3. Deprecating unnecessary methods in the SafeXmlUtils class helps in maintaining a cleaner API.

These changes appear to be beneficial for the project's maintainability and internationalization efforts.

🧰 Tools
🪛 LanguageTool

[typographical] ~15-~15: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...helper method to field 37K #### 10.1.14 - March 2024 * (PW-1812) Updated the nar...

(DASH_RULE)

🪛 Markdownlint

16-16: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


17-17: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


18-18: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


15-15: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


16-16: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


20-21: LGTM: Enhanced flexibility in Field59F

The change to make the getComponentLabel(component) in Field59F dynamic based on the line identifiers (similar to existing API in Field50F) is a good improvement. This change enhances the flexibility of the field and maintains consistency with other similar fields.

🧰 Tools
🪛 LanguageTool

[typographical] ~20-~20: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ... in the SafeXmlUtils class #### 10.1.13 - December 2023 * (PW-1718) Changed the ...

(DASH_RULE)

🪛 Markdownlint

21-21: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


20-20: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


21-21: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


23-26: LGTM: Bug fixes and improvements

The changes in version 10.1.12 are all positive:

  1. Fixing validation/parse pattern in field 29O addresses a specific issue.
  2. Making changes to field 30I in MT306 suggests an improvement or correction to that message type.
  3. Adding DistinguishedName with Builder to encapsulate the BIC branch name logic is a good architectural decision, improving code organization and potentially making BIC-related operations more maintainable.

These changes appear to be beneficial for the project's correctness and maintainability.

🧰 Tools
🪛 LanguageTool

[typographical] ~23-~23: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ... existing API in Field50F) #### 10.1.12 - November 2023 * (PW-1697) Fixed valida...

(DASH_RULE)

🪛 Markdownlint

24-24: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


25-25: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


26-26: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


26-26: Expected: 0 or 2; Actual: 1
Trailing spaces

(MD009, no-trailing-spaces)


23-23: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


24-24: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


28-29: LGTM: Validation pattern fix

The fix for the validation pattern in fields 14[H,K,L,M,N,O] and 29J is a good improvement. This change should help ensure more accurate validation of these fields across various message types.

🧰 Tools
🪛 LanguageTool

[typographical] ~28-~28: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...the BIC branch name logic #### 10.1.11 - November 2023 * (PW-1697) Fixed valida...

(DASH_RULE)

🪛 Markdownlint

29-29: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


28-28: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


29-29: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


31-33: LGTM: Important fixes for JSON parsing and field labels

The changes in version 10.1.10 address critical issues:

  1. Fixing a stack overflow in the fields' fromJson implementation when handling malformed JSON input with empty field names is crucial for preventing potential crashes or hangs in the application.
  2. Adding missing field labels for SRU2023 changes in the pw_swift_*.properties file ensures that all new or modified fields have proper labels, which is important for display and processing purposes.

These fixes enhance the robustness and completeness of the library.

🧰 Tools
🪛 LanguageTool

[typographical] ~31-~31: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...ds 14[H,K,L,M,N,O] and 29J #### 10.1.10 - November 2023 * (PW-1695) Fixed a stac...

(DASH_RULE)

🪛 Markdownlint

32-32: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


33-33: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


31-31: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


32-32: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


35-37: LGTM: Field updates and getter additions

The changes in version 10.1.9 are positive:

  1. Updating Field 31R to support two date components as requested by SCORE messages improves compatibility with specific message types.
  2. Adding 36B and 36D getters to MT543 enhances the API for working with this message type.

These changes improve the library's functionality and ease of use.

🧰 Tools
🪛 Markdownlint

36-36: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


37-37: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


35-35: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


36-36: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


39-40: LGTM: Field 24G update

The deprecation of Name and Address for Narrative in Field 24G is a noteworthy change. This update likely aligns the field with current SWIFT standards or improves its structure for better data representation.

🧰 Tools
🪛 Markdownlint

40-40: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


39-39: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


40-40: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


42-44: LGTM: API enhancements

The changes in version 10.1.7 provide useful API improvements:

  1. Adding default methods for sender, receiver, and identifier extraction to the MessageExtractionStrategy enhances the flexibility of message processing.
  2. Adding JSON to the FileFormat enumeration expands the supported formats, which is beneficial for modern data interchange.

These additions improve the library's versatility and ease of use.

🧰 Tools
🪛 Markdownlint

43-43: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


44-44: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


42-42: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


43-43: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


46-47: LGTM: Field 44J parsing improvement

The fix for Field 44J parse and getValue to enable proper data preservation when the field contains multiline content is an important improvement. This change ensures that all data in the field is correctly handled and preserved, which is crucial for accurate message processing.

🧰 Tools
🪛 Markdownlint

47-47: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


46-46: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


47-47: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


49-50: LGTM: Customization support for SafeXmlUtils

Adding support for an optional pw-swift-core.properties to customize the behavior of the SafeXmlUtils class is a good feature. This allows users to fine-tune XML-related operations without modifying the core code, enhancing flexibility and configurability.

🧰 Tools
🪛 Markdownlint

50-50: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


49-49: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


50-50: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


52-53: LGTM: Field 44J fix

This entry confirms the fix for Field 44J parse and getValue, which was mentioned earlier. It's good to see that this issue has been addressed, ensuring correct handling of Field 44J data.

🧰 Tools
🪛 Markdownlint

53-53: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


52-52: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


53-53: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


55-56: LGTM: Field 44J format update

Fixing the Field 44J format to allow multiline content is a positive change. This update ensures that the field can properly handle and represent multiline data, which is important for maintaining the integrity of the message content.

🧰 Tools
🪛 Markdownlint

56-56: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


55-55: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


56-56: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


58-60: LGTM: Important updates in version 10.1.2

The changes in this version are significant:

  1. Removing the deprecation of field 31R model since it is used back in SRU2023 shows responsiveness to SWIFT standard updates.
  2. Trimming the original String payload when creating an AbstractSwiftMessage is a good practice to ensure consistent data handling.

These changes improve standard compliance and data consistency.

🧰 Tools
🪛 Markdownlint

59-59: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


60-60: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


58-58: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


59-59: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


62-64: LGTM: Bug fixes and improvements

Version 10.1.1 includes important fixes:

  1. Removing unnecessary padding in sender and receiver in AbstractMT#create(number, sender, receiver) method improves data accuracy.
  2. Fixing the getValue method for pattern issues in Field44J ensures correct data retrieval.

These fixes enhance the library's reliability and correctness.

🧰 Tools
🪛 Markdownlint

63-63: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


64-64: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


62-62: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


63-63: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


66-70: Significant updates in version 10.1.0

This version includes major changes:

  1. Migration to Java 11
  2. Migration to Jakarta EE 10
  3. Fixing getValue method for pattern issues in Field44J
  4. Fixing missing pattern issues in Field44J

These updates represent a significant technological upgrade and important fixes. However, it's crucial to ensure that these changes don't introduce compatibility issues for existing users.

Please verify the impact of the Java 11 and Jakarta EE 10 migrations:

#!/bin/bash
# Description: Check for potential breaking changes due to Java 11 and Jakarta EE 10 migrations

# Search for Java 11 specific features
echo "Java 11 specific features:"
rg --type java "var\s+\w+\s*=" # Local variable type inference
rg --type java "HttpClient" # New HTTP Client

# Search for Jakarta EE 10 specific changes
echo "Jakarta EE 10 specific changes:"
rg --type java "jakarta\." # New Jakarta namespace
rg --type java "javax\." # Old namespace (should be replaced)

# Check for any remaining Java 8 specific APIs that might need updating
echo "Potential Java 8 APIs that might need updating:"
rg --type java "java\.util\.Date"
rg --type java "java\.util\.Calendar"
🧰 Tools
🪛 Markdownlint

67-67: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


68-68: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


69-69: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


70-70: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


66-66: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


67-67: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


10-13: Verify the impact of new NarrativeFragment class

The addition of the NarrativeFragment class for detailed line information in StructuredNarrative fragments (PW-1862) seems like a significant enhancement. However, it's important to ensure that this change doesn't break existing implementations.

The other changes look good:

  • Fixing SwiftMessage.getPDE() to return an empty value instead of null when a codeword exists without a value improves consistency and prevents potential null pointer exceptions.
  • Adding isPercentage() helper method to field 37K enhances the API's usability.

Could you please verify if the new NarrativeFragment class is backwards compatible with existing code? Run the following script to check for any potential breaking changes:

✅ Verification successful

NarrativeFragment Addition is Backwards Compatible

The addition of the NarrativeFragment class does not affect existing implementations of StructuredNarrative. There are no usages of NarrativeFragment in the production codebase, ensuring that existing functionalities remain intact.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for potential breaking changes related to NarrativeFragment

# Search for existing uses of StructuredNarrative
echo "Existing uses of StructuredNarrative:"
rg --type java "StructuredNarrative"

# Search for new NarrativeFragment class
echo "New NarrativeFragment class:"
rg --type java "class NarrativeFragment"

# Search for uses of the new NarrativeFragment class
echo "Uses of new NarrativeFragment class:"
rg --type java "NarrativeFragment"

Length of output: 159798


Script:

#!/bin/bash
# Description: Further verify the impact of NarrativeFragment class

# Search for existing uses of StructuredNarrative
echo "Searching for existing uses of StructuredNarrative:"
rg --type java "StructuredNarrative" || echo "No existing uses of StructuredNarrative found."

# Verify the declaration of NarrativeFragment class
echo "Verifying the declaration of NarrativeFragment class:"
rg --type java "class\s+NarrativeFragment" || echo "NarrativeFragment class declaration not found."

# Search for any usages of NarrativeFragment class
echo "Searching for usages of NarrativeFragment class:"
rg --type java "NarrativeFragment" || echo "No usages of NarrativeFragment found."

Length of output: 25945

🧰 Tools
🪛 LanguageTool

[typographical] ~10-~10: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...pt local account structure #### 10.1.15 - May 2024 * (PW-1862) Added NarrativeFr...

(DASH_RULE)

🪛 Markdownlint

11-11: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


12-12: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


13-13: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


10-10: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


11-11: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

build.gradle (6)

7-10: Plugin Versions Updated Successfully

The versions of the plugins have been updated to the latest available:

  • gradle-quality-plugin to 4.9.0
  • axion-release-plugin to 1.15.1
  • spotless-plugin-gradle to 6.23.3

These updates should bring in new features and improvements.


42-42: Java Language Version Updated to 11

The project is now set to compile with Java 11:

languageVersion.set(JavaLanguageVersion.of(11))

This aligns with the migration to Java 11 and should enable the use of new language features.


73-77: Source Sets Configuration Updated to Modern Syntax

The source sets are now configured using the sourceSets.named('main') closure, which is a more structured and maintainable approach:

sourceSets.named('main') {
    java {
        setSrcDirs(['src/main/java', 'src/generated/java'])
    }
}

92-93: Manifest Attributes Updated for Java 11 Compatibility

The Source-Compatibility and Target-Compatibility manifest attributes have been updated to JavaVersion.VERSION_11, matching the project's Java version:

'Source-Compatibility': JavaVersion.VERSION_11,
'Target-Compatibility': JavaVersion.VERSION_11,

268-268: Updated 'archiveName' to 'archiveFileName.set()'

The deprecated archiveName property has been replaced with archiveFileName.set() to comply with the latest Gradle API:

archiveFileName.set('bundle.jar')

291-299: Jacoco Report Configuration Updated

The Jacoco report generation has been updated to explicitly configure the report formats:

jacocoTestReport {
    reports {
        xml {
            required.set(true)
        }
        csv {
            required.set(false)
        }
        html {
            required.set(false)
        }
    }
}

This change ensures that only XML reports are generated, aligning with your reporting requirements.

Comment on lines 1 to 70
# Prowide Core - CHANGELOG

#### 9.4.18 - October 2024
#### 10.1.17 - October 2024
* Added new `FieldEnum` with all the available field names
* Code security improvements as per CodeQL recommendations

#### 9.4.17 - June 2024
#### 10.1.16 - June 2024
* (PW-1913) Added IBAN validation for Egypt local account structure

#### 9.4.16 - May 2024
#### 10.1.15 - May 2024
* (PW-1862) Added NarrativeFragment class for detailed line information in StructuredNarrative fragments
* Fixed SwiftMessage getPDE(): return empty value instead of null when codeword exists and has no value
* Added isPercentage() helper method to field 37K

#### 9.4.15 - March 2024
#### 10.1.14 - March 2024
* (PW-1812) Updated the narrative resolver, format 2 (used in field 72 for example), to allow empty values as part of the narrative fragment
* Updated validators for BIC, country, and currency constraints to utilize keywords for i18n-compatible messages
* Deprecated unnecessary methods in the SafeXmlUtils class

#### 9.4.14 - December 2023
#### 10.1.13 - December 2023
* (PW-1718) Changed the getComponentLabel(component) in Field59F to be dynamic based on the line identifiers (similar to existing API in Field50F)

#### 9.4.13 - November 2023
#### 10.1.12 - November 2023
* (PW-1697) Fixed validation/parse pattern in field 29O
* (PW-1697) MT306 changes in field 30I
* Added DistinguishedName with Builder in order to encapsulate the BIC branch name logic
* Added DistinguishedName with Builder to encapsulate the BIC branch name logic

#### 9.4.12 - November 2023
#### 10.1.11 - November 2023
* (PW-1697) Fixed validation pattern in fields 14[H,K,L,M,N,O] and 29J

#### 9.4.11 - November 2023
#### 10.1.10 - November 2023
* (PW-1695) Fixed a stack overflow in the fields fromJson implementation when a malformed JSON input contains empty field names
* (PW-1688) Added missing field labels for SRU2023 changes in the pw_swift_*.properties file

#### 9.4.10 - October 2023
#### 10.1.9 - October 2023
* (PW-1675) update to Field 31R to support also two date components as requested by SCORE messages
* Added 36B and 36D getters to MT543

#### 9.4.9 - October 2023
#### 10.1.8 - October 2023
* (PW-1659) Field 24G deprecated Name and Address for Narrative

#### 9.4.8 - October 2023
#### 10.1.7 - October 2023
* Added default methods for sender, receiver, and identifier extraction to the MessageExtractionStrategy
* Added JSON to the `FileFormat` enumeration

#### 9.4.7 - September 2023
#### 10.1.6 - September 2023
* (PW-1478) Fixed Field 44J parse and getValue to enable proper data preservation when the field contains multiline content

#### 9.4.6 - September 2023
#### 10.1.5 - September 2023
* Added support for an optional `pw-swift-core.properties` to customize the behavior of the SafeXmlUtils class

#### 9.4.5 - August 2023
#### 10.1.4 - September 2023
* (PW-1478) Field 44J parse and getValue fix

#### 9.4.4 - August 2023
#### 10.1.3 - August 2023
* (PW-1478) Field 44J format fixed to allow multiline

#### 9.4.3 - July 2023
#### 10.1.2 - August 2023
* (PW-1461) Remove deprecation of field 31R model since is it used back in SRU2023
* (PW-1405) Trim original String payload when creating an AbstractSwiftMessage

#### 9.4.2 - June 2023
#### 10.1.1 - July 2023
* (GH-163) Remove unnecessary padding in sender and receiver in AbstractMT#creeate(number, sender, receiver) method
* (PW-1323) Fixing getValue method for pattern issue in Field44J

#### 9.4.1 - June 2023
#### 10.1.0 - June 2023
* Migration to Java 11
* Migration to Jakarta EE 10
* (PW-1323) Fixing getValue method for pattern issue in Field44J
* (PW-1323) Fixing missing pattern issue in Field44J
Copy link

Choose a reason for hiding this comment

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

🧹 Nitpick (assertive)

Overall assessment of the changelog

The changelog for Prowide Core demonstrates active development and significant improvements to the library. Key points to note:

  1. Continuous updates and bug fixes across multiple versions show dedication to maintaining and improving the library.
  2. Important enhancements have been made to various fields and message types, improving data handling and validation.
  3. The addition of new features like the FieldEnum and NarrativeFragment class enhances the library's functionality.
  4. Security improvements based on CodeQL recommendations are a positive step towards a more secure codebase.
  5. The migration to Java 11 and Jakarta EE 10 in version 10.1.0 represents a major technological upgrade.

While these changes are generally positive, it's crucial to ensure that the major version updates (Java 11 and Jakarta EE 10) don't introduce compatibility issues for existing users. Thorough testing and possibly a migration guide for users would be beneficial.

Consider the following recommendations:

  1. Provide a detailed migration guide for users upgrading from earlier versions, especially regarding the Java 11 and Jakarta EE 10 changes.
  2. Ensure comprehensive test coverage for all new features and changes, particularly the NarrativeFragment class and updated field handlers.
  3. Consider implementing a deprecation policy with clear timelines to help users prepare for future changes.
  4. If not already in place, consider setting up automated compatibility tests to catch potential breaking changes early in the development process.
🧰 Tools
🪛 LanguageTool

[typographical] ~3-~3: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...# Prowide Core - CHANGELOG #### 10.1.17 - October 2024 * Added new FieldEnum w...

(DASH_RULE)


[typographical] ~7-~7: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...per CodeQL recommendations #### 10.1.16 - June 2024 * (PW-1913) Added IBAN valid...

(DASH_RULE)


[typographical] ~10-~10: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...pt local account structure #### 10.1.15 - May 2024 * (PW-1862) Added NarrativeFr...

(DASH_RULE)


[typographical] ~15-~15: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...helper method to field 37K #### 10.1.14 - March 2024 * (PW-1812) Updated the nar...

(DASH_RULE)


[typographical] ~20-~20: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ... in the SafeXmlUtils class #### 10.1.13 - December 2023 * (PW-1718) Changed the ...

(DASH_RULE)


[typographical] ~23-~23: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ... existing API in Field50F) #### 10.1.12 - November 2023 * (PW-1697) Fixed valida...

(DASH_RULE)


[typographical] ~28-~28: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...the BIC branch name logic #### 10.1.11 - November 2023 * (PW-1697) Fixed valida...

(DASH_RULE)


[typographical] ~31-~31: If you want to indicate numerical ranges or time ranges, consider using an en dash.
Context: ...ds 14[H,K,L,M,N,O] and 29J #### 10.1.10 - November 2023 * (PW-1695) Fixed a stac...

(DASH_RULE)

🪛 Markdownlint

3-3: Expected: h2; Actual: h4
Heading levels should only increment by one level at a time

(MD001, heading-increment)


4-4: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


5-5: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


8-8: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


11-11: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


12-12: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


13-13: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


16-16: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


17-17: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


18-18: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


21-21: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


24-24: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


25-25: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


26-26: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


29-29: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


32-32: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


33-33: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


36-36: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


37-37: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


40-40: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


43-43: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


44-44: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


47-47: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


50-50: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


53-53: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


56-56: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


59-59: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


60-60: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


63-63: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


64-64: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


67-67: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


68-68: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


69-69: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


70-70: Expected: 0; Actual: 2
Unordered list indentation

(MD007, ul-indent)


26-26: Expected: 0 or 2; Actual: 1
Trailing spaces

(MD009, no-trailing-spaces)


3-3: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


7-7: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


10-10: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


15-15: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


20-20: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


23-23: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


28-28: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


31-31: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


35-35: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


39-39: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


42-42: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


46-46: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


49-49: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


52-52: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


55-55: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


58-58: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


62-62: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


66-66: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


4-4: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


8-8: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


11-11: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


16-16: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


21-21: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


24-24: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


29-29: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


32-32: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


36-36: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


40-40: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


43-43: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


47-47: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


50-50: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


53-53: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


56-56: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


59-59: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


63-63: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)


67-67: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

Comment on lines +58 to +62
// jakarta is only used for annotations, we do not add it as implementation dependency on purpose to avoid forcing
// users to use jakarta jars in their project when they might not event be using JPA or JAXB at all
compileOnly 'jakarta.persistence:jakarta.persistence-api:3.1.0'
compileOnly 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.0'
compileOnly 'jakarta.validation:jakarta.validation-api:3.0.2'
Copy link

Choose a reason for hiding this comment

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

💡 Codebase verification

Remaining javax.* Imports Detected

The following files still contain imports from javax.* packages:

  • src/main/java/com/prowidesoftware/swift/utils/SafeXmlUtils.java
  • src/main/java/com/prowidesoftware/swift/io/parser/XMLParser.java

Please update these imports to their corresponding jakarta.* packages to ensure compatibility and prevent potential ClassNotFoundException or compilation errors.

🔗 Analysis chain

Ensure All Code Imports Are Updated to 'jakarta.*' Packages

The dependencies have been updated from javax.* to jakarta.* packages:

  • jakarta.persistence:jakarta.persistence-api:3.1.0
  • jakarta.xml.bind:jakarta.xml.bind-api:4.0.0
  • jakarta.validation:jakarta.validation-api:3.0.2

Please verify that all code imports and usages have been updated accordingly to prevent ClassNotFoundException or compilation errors.

Run the following script to find any remaining javax.* imports in the main source code:

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Find imports from 'javax' packages in the main source code.

# Expected: No imports from 'javax' packages.

rg --type java '^import javax\.' src/main/java/

Length of output: 1099

Comment on lines +64 to +65
testImplementation 'jakarta.persistence:jakarta.persistence-api:3.1.0'
testImplementation 'jakarta.validation:jakarta.validation-api:3.1.0'
Copy link

Choose a reason for hiding this comment

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

💡 Codebase verification

Remaining javax.* Imports Detected in Test Code

The following test files still contain imports from javax.* packages:

  • src/test/java/com/prowidesoftware/swift/utils/SafeXmlUtilsTest.java

    • import javax.xml.XMLConstants;
    • import javax.xml.parsers.DocumentBuilder;
    • import javax.xml.stream.XMLInputFactory;
    • import javax.xml.stream.XMLStreamException;
    • import javax.xml.stream.XMLStreamReader;
    • import javax.xml.transform.Transformer;
    • import javax.xml.transform.TransformerException;
    • import javax.xml.transform.stream.StreamResult;
    • import javax.xml.transform.stream.StreamSource;
    • import javax.xml.validation.Schema;
    • import javax.xml.validation.SchemaFactory;
  • src/test/java/com/prowidesoftware/swift/io/parser/XMLParserTest.java

    • import javax.xml.parsers.DocumentBuilder;

Please update these imports to use jakarta.* packages to ensure consistency with the updated test dependencies.

🔗 Analysis chain

Ensure Test Code Imports Are Updated to 'jakarta.*' Packages

The test dependencies have also been updated to use jakarta.* packages:

  • jakarta.persistence:jakarta.persistence-api:3.1.0
  • jakarta.validation:jakarta.validation-api:3.1.0

Please verify that all test code imports and usages have been updated to match these dependencies.

Run the following script to find any remaining javax.* imports in the test source code:

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Find imports from 'javax' packages in the test source code.

# Expected: No imports from 'javax' packages.

rg --type java '^import javax\.' src/test/java/

Length of output: 1371

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