Skip to content

refactor: migrate wheelchair attributes storage to encoded values (WIP)#2284

Draft
jarinox wants to merge 11 commits into
mainfrom
refactor/migrate_wheelchair_attributes_storage
Draft

refactor: migrate wheelchair attributes storage to encoded values (WIP)#2284
jarinox wants to merge 11 commits into
mainfrom
refactor/migrate_wheelchair_attributes_storage

Conversation

@jarinox
Copy link
Copy Markdown
Contributor

@jarinox jarinox commented May 12, 2026

Pull Request Checklist

  • 1. I have [rebased][rebase] the latest version of the main branch into my feature branch and all conflicts
    have been resolved.
  • 2. I have added information about the change/addition to functionality to the CHANGELOG.md file under the
    [Unreleased] heading.
  • 3. I have documented my code using JDocs tags.
  • 4. I have removed unnecessary commented out code, imports and System.out.println statements.
  • 5. I have written JUnit tests for any new methods/classes and ensured that they pass.
  • 6. I have created API tests for any new functionality exposed to the API.
  • 7. If changes/additions are made to the ors-config.json file, I have added these to the [ors config documentation][config]
    along with a short description of what it is for, and documented this in the Pull Request (below).
  • 8. I have built graphs with my code of the Heidelberg.osm.gz file and run the api-tests with all test passing
  • 9. I have referenced the Issue Number in the Pull Request (if the changes were from an issue).
  • 10. For new features or changes involving building of graphs, I have tested on a larger dataset
    (at least Germany), and the graphs build without problems (i.e. no out-of-memory errors).
  • 11. For new features or changes involving the graphbuilding process (i.e. changing encoders, updating the
    importer etc.), I have generated longer distance routes for the affected profiles with different options
    (avoid features, max weight etc.) and compared these with the routes of the same parameters and start/end
    points generated from the current live ORS.
    If there are differences then the reasoning for these MUST be documented in the pull request.
  • 12. I have written in the Pull Request information about the changes made including their intended usage
    and why the change was needed.
  • 13. For changes touching the API documentation, I have tested that the API playground [renders correctly][api].

Fixes #993

Information about the changes

  • Key functionality added: migrates the storage of WheelchairAttributes from external storage to encoded values
  • Reason for change: cleanup

jarinox added 2 commits May 12, 2026 11:25
WheelchairAttributes are stored in EncodedValues instead of GraphStorage:
- implement parsers for all attributes
- read WheelchairValues from EncodedValues
@jarinox jarinox force-pushed the refactor/migrate_wheelchair_attributes_storage branch from 8a9fa8a to 623bca3 Compare May 12, 2026 10:15
@jarinox jarinox force-pushed the refactor/migrate_wheelchair_attributes_storage branch from 17b73c5 to 2f6e9a7 Compare May 26, 2026 09:46
@jarinox jarinox force-pushed the refactor/migrate_wheelchair_attributes_storage branch from 2f6e9a7 to 6319f06 Compare May 26, 2026 09:51
@jarinox jarinox force-pushed the refactor/migrate_wheelchair_attributes_storage branch from ec8ad6a to 8e04925 Compare June 2, 2026 10:14
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Jun 2, 2026

@jarinox
Copy link
Copy Markdown
Contributor Author

jarinox commented Jun 2, 2026

@aoles As you proposed, I created some basic new parsers based on the original WheelchairGraphStorageBuilder, and they are working fine. I then enabled the attributes in my rewritten parsers one by one until the tests failed or the old edge delivered different results than the new one.

Through that process, I eliminated the remaining issues with the new parsers. They are now all enabled and produce the exact same results as the old ones. I've also started cleaning up the deprecated code.

One remaining question: What is the best way to expose kerbHeightOnlyOnCrossing as a configurable property?

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace EncodedValueOld by EncodedValue

2 participants