[midPoint-git] [Evolveum/midpoint] 18ba4d: Smart Integration: Refactor heuristic mappings to ...
Michal Zelenčík
noreply at github.com
Fri Feb 6 07:40:12 CET 2026
Branch: refs/heads/feature/heuristic-mappings
Home: https://github.com/Evolveum/midpoint
Commit: 18ba4dae515c34a1746dbd2c2824303f95aba3c5
https://github.com/Evolveum/midpoint/commit/18ba4dae515c34a1746dbd2c2824303f95aba3c5
Author: Michal Zelencik <michal.zelencik at evolveum.com>
Date: 2026-02-06 (Fri, 06 Feb 2026)
Changed paths:
M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/MappingSuggestionOperationFactory.java
M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/MappingsSuggestionOperation.java
M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/ValuesPairSample.java
R model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/AbstractHeuristicMapping.java
M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/FirstWordHeuristic.java
R model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/HeuristicMapping.java
R model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/HeuristicMappingManager.java
M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/HeuristicResult.java
A model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/HeuristicRule.java
A model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/HeuristicRuleMatcher.java
M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/LastWordHeuristic.java
A model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/MappingExpressionFactory.java
M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/RemoveWhitespaceHeuristic.java
M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/StripDiacriticsHeuristic.java
M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/ToLowerCaseHeuristic.java
M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/ToUpperCaseHeuristic.java
M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/TrimAndLowerCaseHeuristic.java
M model/smart-impl/src/main/java/com/evolveum/midpoint/smart/impl/mappings/heuristics/TrimHeuristic.java
M model/smart-impl/src/test/java/com/evolveum/midpoint/smart/impl/TestMappingsSuggestionOperation.java
M model/smart-impl/src/test/java/com/evolveum/midpoint/smart/impl/TestSystemMappingsSuggestion.java
Log Message:
-----------
Smart Integration: Refactor heuristic mappings to use composition over inheritance
Replace inheritance-based design with factory pattern to reduce coupling
and improve modularity in the heuristic mapping system.
- Replace AbstractHeuristicMapping inheritance with MappingExpressionFactory
functional interface
- Rename HeuristicMapping → HeuristicRule (better semantic meaning)
- Rename HeuristicMappingManager → HeuristicRuleMatcher (clearer purpose)
- Update all 8 heuristic implementations to use factory pattern
- Optimize HeuristicRuleMatcher.findBestMatch() to create HeuristicResult
only for the best match instead of all evaluated rules
- Update both inbound and outbound expression methods to accept factory
parameter
Addresses review comments in AbstractHeuristicMapping.java,
HeuristicMapping.java, and HeuristicMappingManager.java.
To unsubscribe from these emails, change your notification settings at https://github.com/Evolveum/midpoint/settings/notifications
More information about the midPoint-svn
mailing list