#175 Add object oriented disharmony detectors#176
Merged
jimbethancourt merged 40 commits intoJun 2, 2026
Conversation
Updated detectors for Object Oriented Disharmonies to align with metric values from book
Now using homegrown God class detector.
- Now using class FQN and source path captured in JavaVisitor. One less traversal needed! - Removed extra mapping maps that were populated by the now superfluous path walking in CycleRanker - Path mappings for inner classes are now being captured - BUG: Static method calls and definitions are not being scanned, but were previously being captured. Will take this as a bug for now and address this issue ASAP.
- BUG: Static method calls and definitions are not being scanned, but were previously being captured. Will take this as a bug for now and address this issue ASAP.
…code and unit tests
Simplified variable and try catch type processing
…p when lambda is involved in a cycle
…e by computing suffix sums
- Forgot to add new classes - Also changed TCC metric sort order to DESCENDING for God classes
- Fixed sort direction to match greater than / less than direction specified in Object Oriented Metrics in Practice - Added MAXNESTING as ranking criteria for method coupling metrics
Disharmony SCM information lookup now being performed correctly.
- Corrected TCC rank direction. This class will go away soon. - Disabled GodClassRankerTest since GodClassRanker will go away soon
Only displaying metric names, metric values, and metric rankings if `showDetails` is true
Simplifying method signature and duplication partner rendering when `showDetails` is false
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adding remaining disharmonies identified in "Object Oriented Metrics in Practice" and ranking them based on severity.