J21 Language updates through mekhq.campaign.market#8890
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #8890 +/- ##
============================================
+ Coverage 13.60% 13.67% +0.06%
- Complexity 8140 8179 +39
============================================
Files 1310 1309 -1
Lines 169503 169180 -323
Branches 25538 25484 -54
============================================
+ Hits 23065 23132 +67
+ Misses 144133 143717 -416
- Partials 2305 2331 +26 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR modernizes MekHQ code under mekhq.campaign.market (and adjacent packages) for Java 21 usage and continues cleanup of legacy/deprecated APIs.
Changes:
- Replaces
MathUtility.clamp(...)and variouslist.get(0)usages with Java 21 standard/library alternatives (e.g.,Math.clamp(...),getFirst()). - Removes or further deprecates unused legacy methods/classes (including full removal of deprecated
RATManager). - Minor logging/message and formatting adjustments while touching the above call sites.
Reviewed changes
Copilot reviewed 44 out of 44 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| MekHQ/src/mekhq/campaign/universe/RATManager.java | Removes deprecated RATManager implementation. |
| MekHQ/src/mekhq/campaign/mission/atb/scenario/AlliedTraitorsBuiltInScenario.java | Uses getFirst() when selecting the first special-scenario enemy group. |
| MekHQ/src/mekhq/campaign/mission/atb/scenario/AceDuelBuiltInScenario.java | Uses getFirst() when selecting the first special-scenario enemy group. |
| MekHQ/src/mekhq/campaign/market/unitMarket/AtBMonthlyUnitMarket.java | Uses getFirst() when selecting first active contract. |
| MekHQ/src/mekhq/campaign/market/personnelMarket/markets/PersonnelMarketMekHQ.java | Switches clamp usage to Math.clamp(...). |
| MekHQ/src/mekhq/campaign/market/personnelMarket/markets/PersonnelMarketCamOpsStrict.java | Removes unused import. |
| MekHQ/src/mekhq/campaign/market/personnelMarket/markets/NewPersonnelMarket.java | Removes deprecated no-arg report helper. |
| MekHQ/src/mekhq/campaign/market/enums/ContractMarketMethod.java | Deprecates legacy isCamOps() helper. |
| MekHQ/src/mekhq/campaign/market/contractMarket/MissionSelector.java | Switches clamp usage to Math.clamp(...). |
| MekHQ/src/mekhq/campaign/market/contractMarket/ContractTypePicker.java | Switches clamp usage to Math.clamp(...). |
| MekHQ/src/mekhq/campaign/market/contractMarket/ContractTerms.java | Switches clamp usage to Math.clamp(...); deprecates legacy accessor. |
| MekHQ/src/mekhq/campaign/market/contractMarket/AtbMonthlyContractMarket.java | Switches clamp usage to Math.clamp(...). |
| MekHQ/src/mekhq/campaign/market/contractMarket/AbstractContractMarket.java | Removes deprecated/unused method and unused import. |
| MekHQ/src/mekhq/campaign/market/PersonnelMarket.java | Deprecates legacy hooks; uses getFirst() for report subject selection. |
| MekHQ/src/mekhq/campaign/market/PartsStore.java | Deprecates legacy lookup API. |
| MekHQ/src/mekhq/campaign/log/ServiceLogger.java | Deprecates older overloads. |
| MekHQ/src/mekhq/campaign/log/PerformanceLogger.java | Deprecates older overload. |
| MekHQ/src/mekhq/campaign/io/CampaignXmlParser.java | Improves warning log formatting (parameterized logging). |
| MekHQ/src/mekhq/campaign/io/CampaignXmlParseException.java | Deprecates constructors. |
| MekHQ/src/mekhq/campaign/icons/enums/OperationalStatus.java | Removes MathUtility usage; adds deprecations and updates clamp call. |
| MekHQ/src/mekhq/campaign/icons/enums/LayeredFormationIconLayer.java | Deprecates legacy getters/helpers. |
| MekHQ/src/mekhq/campaign/handler/XPHandler.java | Deprecates legacy event handlers. |
| MekHQ/src/mekhq/campaign/force/FormationLevel.java | Deprecates legacy helpers; minor formatting touch. |
| MekHQ/src/mekhq/campaign/force/Formation.java | Refactors formatting; deprecates legacy commander APIs; uses getFirst() where appropriate. |
| MekHQ/src/mekhq/campaign/finances/Loan.java | Switches clamp usage to Math.clamp(...). |
| MekHQ/src/mekhq/campaign/finances/CurrencyManager.java | Deprecates legacy formatter accessor. |
| MekHQ/src/mekhq/campaign/events/transactions/TransactionChangedEvent.java | Deprecates legacy accessors. |
| MekHQ/src/mekhq/campaign/events/persons/PersonForceAssignmentEvent.java | Deprecates legacy event type. |
| MekHQ/src/mekhq/campaign/events/parts/PartAssignmentEvent.java | Deprecates legacy event type. |
| MekHQ/src/mekhq/campaign/campaignOptions/CampaignOptionsUnmarshaller.java | Simplifies node parsing helper signature and flow (removes unused boolean returns). |
| MekHQ/src/mekhq/campaign/campaignOptions/CampaignOptions.java | Removes obsolete RAT options; switches clamp usage to Math.clamp(...); adds/adjusts deprecations. |
| MekHQ/src/mekhq/campaign/camOpsReputation/UnitRatingMethod.java | Deprecates legacy boolean helpers. |
| MekHQ/src/mekhq/campaign/camOpsReputation/TransportationRating.java | Removes redundant cast from size(). |
| MekHQ/src/mekhq/campaign/camOpsReputation/SupportRating.java | Uses getFirst() when consuming list results. |
| MekHQ/src/mekhq/campaign/camOpsReputation/ReputationController.java | Uses getFirst(); replaces replaceAll with replace for literal substitution. |
| MekHQ/src/mekhq/campaign/camOpsReputation/IUnitRating.java | Updates deprecation annotation usage. |
| MekHQ/src/mekhq/campaign/camOpsReputation/AverageExperienceRating.java | Switches clamp usage to Math.clamp(...). |
| MekHQ/src/mekhq/campaign/camOpsReputation/AbstractUnitRating.java | Uses getFirst(); adds deprecations. |
| MekHQ/src/mekhq/campaign/autoResolve/StratConSetupForces.java | Deprecates legacy helper. |
| MekHQ/src/mekhq/campaign/autoResolve/ScenarioSetupForces.java | Deprecates legacy constructor; minor formatting touch. |
| MekHQ/src/mekhq/campaign/autoResolve/MekHQSetupForces.java | Deprecates legacy constructor overload. |
| MekHQ/src/mekhq/campaign/autoResolve/AutoResolveMethod.java | Deprecates legacy parsing helpers. |
| MekHQ/src/mekhq/campaign/againstTheBot/DatedRecord.java | Deprecates legacy record type and helper. |
| MekHQ/src/mekhq/campaign/againstTheBot/AtBConfiguration.java | Replaces manual min/max bounding with Math.clamp(...). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| ordinal = Math.clamp(ordinal, 0, values().length); | ||
|
|
||
| return values()[ordinal]; |
There was a problem hiding this comment.
OperationalStatus.fromInt clamps ordinal with an upper bound of values().length, but values() is indexed 0..length-1. If ordinal clamps to length, values()[ordinal] will throw ArrayIndexOutOfBoundsException and the Javadoc’s “last index” guarantee is violated. Clamp to values().length - 1 instead (and consider guarding the empty-enum case, though this enum is currently non-empty).
| ordinal = Math.clamp(ordinal, 0, values().length); | |
| return values()[ordinal]; | |
| final OperationalStatus[] statuses = values(); | |
| ordinal = Math.clamp(ordinal, 0, statuses.length - 1); | |
| return statuses[ordinal]; |
No description provided.