@@ -179,10 +179,13 @@ public static RuleMetadata createGenericMetadata(Module module) {
179179 }
180180
181181 RuleGroupMetadata otherGroup = getRuleGroupMetadata (XMLTags .OTHER_GROUP );
182- RuleMetadata ruleMeta = new RuleMetadata (module .getName (), module .getName (), parent ,
183- MetadataFactory .getDefaultSeverity (), false , true , true , false , otherGroup );
182+ RuleMetadata ruleMeta = new RuleMetadata (
183+ new RuleIdentity (module .getName (), module .getName (), parent , otherGroup , null ,
184+ Collections .emptyList ()),
185+ MetadataFactory .getDefaultSeverity (), false , true , true , false , Collections .emptyList (),
186+ Collections .emptyList ());
184187 module .setMetaData (ruleMeta );
185- sRuleMetadata .put (ruleMeta .getInternalName (), ruleMeta );
188+ sRuleMetadata .put (ruleMeta .identity (). internalName (), ruleMeta );
186189
187190 List <ConfigProperty > properties = module .getProperties ();
188191 int size = properties != null ? properties .size () : 0 ;
@@ -228,23 +231,25 @@ private static RuleMetadata createRuleMetadata(ModuleDetails moduleDetails) {
228231 }
229232 }
230233 final String [] packageTokens = moduleDetails .getParent ().split (DOT_PATTERN );
231- RuleMetadata ruleMeta = new RuleMetadata (moduleDetails .getName (), moduleDetails .getName (),
232- packageTokens [packageTokens .length - 1 ], MetadataFactory .getDefaultSeverity (),
233- false , true , true , false , group );
234- ruleMeta .setDescription (moduleDetails .getDescription ());
235-
236- var altName = moduleDetails .getFullQualifiedName ();
237- registerAlternative (altName , ruleMeta );
238-
239- moduleDetails .getProperties ().forEach (modulePropertyDetails -> ruleMeta .getPropertyMetadata ()
240- .add (createPropertyConfig (moduleDetails , modulePropertyDetails )));
234+ List <String > alternativeNames = List .of (moduleDetails .getFullQualifiedName ());
235+ List <ConfigPropertyMetadata > properties = moduleDetails .getProperties ().stream ()
236+ .map (modulePropertyDetails -> createPropertyConfig (moduleDetails , modulePropertyDetails ))
237+ .toList ();
238+ RuleMetadata ruleMeta = new RuleMetadata (
239+ new RuleIdentity (moduleDetails .getName (), moduleDetails .getName (),
240+ packageTokens [packageTokens .length - 1 ], group , moduleDetails .getDescription (),
241+ alternativeNames ),
242+ MetadataFactory .getDefaultSeverity (), false , true , true , false , Collections .emptyList (),
243+ properties );
244+
245+ registerAlternativeNames (ruleMeta );
241246
242247 return ruleMeta ;
243248 }
244249
245- private static void registerAlternative ( String alternativeName , RuleMetadata ruleMetadata ) {
246- ruleMetadata .addAlternativeName ( alternativeName );
247- sAlternativeNamesMap .put (alternativeName , ruleMetadata );
250+ private static void registerAlternativeNames ( RuleMetadata ruleMetadata ) {
251+ ruleMetadata .identity (). alternativeNames ()
252+ . forEach ( alternativeName -> sAlternativeNamesMap .put (alternativeName , ruleMetadata ) );
248253 }
249254
250255 /**
@@ -503,8 +508,8 @@ private static String getStandardMessage(String messageKey, RuleMetadata rule) {
503508 }
504509
505510 List <String > namesToCheck = new ArrayList <>();
506- namesToCheck .add (rule .getInternalName ());
507- namesToCheck .addAll (rule .getAlternativeNames ());
511+ namesToCheck .add (rule .identity (). internalName ());
512+ namesToCheck .addAll (rule .identity (). alternativeNames ());
508513
509514 for (String moduleClass : namesToCheck ) {
510515 try {
@@ -592,7 +597,7 @@ private static void loadRuleMetadata() {
592597 final ModuleDetails moduleDetails = entry .getValue ();
593598 final RuleMetadata createdRuleMetadata = createRuleMetadata (moduleDetails );
594599 sRuleMetadata .put (moduleDetails .getName (), createdRuleMetadata );
595- sRuleGroupMetadata .get (createdRuleMetadata .getGroup ().getGroupName ())
600+ sRuleGroupMetadata .get (createdRuleMetadata .identity (). group ().getGroupName ())
596601 .getRuleMetadata ().add (createdRuleMetadata );
597602 }
598603 }
@@ -751,42 +756,42 @@ private static void processModules(Element groupElement, RuleGroupMetadata group
751756 boolean deletable = !"false" .equals (moduleEl .attributeValue (XMLTags .DELETABLE_TAG )); //$NON-NLS-1$
752757 boolean isSingleton = Boolean .parseBoolean (moduleEl .attributeValue (XMLTags .IS_SINGLETON_TAG ));
753758
754- // create rule metadata
755- RuleMetadata module = new RuleMetadata (name , internalName , parentName , severity , hidden ,
756- hasSeverity , deletable , isSingleton , groupMetadata );
757-
758- // register internal name
759- sRuleMetadata .put (internalName , module );
760-
761759 // process description
762760 String description = moduleEl .elementTextTrim (XMLTags .DESCRIPTION_TAG );
763761 description = localize (description , metadataBundle );
764- module .setDescription (description );
765-
766- // process properties
767- processProperties (moduleEl , module , metadataBundle );
768762
769763 // process alternative names
770- for (Element altNameEl : moduleEl .elements (XMLTags .ALTERNATIVE_NAME_TAG )) {
771-
772- String alternativeName = altNameEl .attributeValue (XMLTags .INTERNAL_NAME_TAG );
773- registerAlternative (alternativeName , module );
774- }
764+ List <String > alternativeNames = moduleEl .elements (XMLTags .ALTERNATIVE_NAME_TAG ).stream ()
765+ .map (altNameEl -> altNameEl .attributeValue (XMLTags .INTERNAL_NAME_TAG ))
766+ .toList ();
775767
776768 // process message keys
777- for (Element quickfixEl : moduleEl .elements (XMLTags .MESSAGEKEY_TAG )) {
769+ List <String > messageKeys = moduleEl .elements (XMLTags .MESSAGEKEY_TAG ).stream ()
770+ .map (quickfixEl -> quickfixEl .attributeValue (XMLTags .KEY_TAG ))
771+ .toList ();
778772
779- String messageKey = quickfixEl .attributeValue (XMLTags .KEY_TAG );
780- module .addMessageKey (messageKey );
781- }
773+ // process properties
774+ List <ConfigPropertyMetadata > properties = processProperties (moduleEl , metadataBundle );
775+
776+ // create rule metadata
777+ RuleMetadata module = new RuleMetadata (
778+ new RuleIdentity (name , internalName , parentName , groupMetadata , description ,
779+ alternativeNames ),
780+ severity , hidden , hasSeverity , deletable , isSingleton , messageKeys , properties );
781+
782+ registerAlternativeNames (module );
783+
784+ // register internal name
785+ sRuleMetadata .put (internalName , module );
782786
783787 groupMetadata .getRuleMetadata ().add (module );
784788 }
785789 }
786790
787791 @ SuppressWarnings ("unchecked" )
788- private static void processProperties (Element moduleElement , RuleMetadata moduleMetadata ,
792+ private static List < ConfigPropertyMetadata > processProperties (Element moduleElement ,
789793 ResourceBundle metadataBundle ) throws CheckstylePluginException {
794+ List <ConfigPropertyMetadata > properties = new ArrayList <>();
790795
791796 List <Element > propertyElements = moduleElement .elements (XMLTags .PROPERTY_METADATA_TAG );
792797 for (Element propertyEl : propertyElements ) {
@@ -807,7 +812,7 @@ private static void processProperties(Element moduleElement, RuleMetadata module
807812 ConfigPropertyMetadata property = new ConfigPropertyMetadata (type , name , defaultValue ,
808813 overrideDefaultValue );
809814
810- moduleMetadata . getPropertyMetadata () .add (property );
815+ properties .add (property );
811816
812817 // get description
813818 String description = propertyEl .elementTextTrim (XMLTags .DESCRIPTION_TAG );
@@ -849,6 +854,7 @@ private static void processProperties(Element moduleElement, RuleMetadata module
849854 }
850855 }
851856 }
857+ return properties ;
852858 }
853859
854860 private static String localize (String localizationCandidate , ResourceBundle metadataBundle ) {
0 commit comments