4545
4646import net .sourceforge .pmd .Rule ;
4747import net .sourceforge .pmd .RuleSet ;
48- import net .sourceforge .pmd .RuleSets ;
4948import net .sourceforge .pmd .eclipse .plugin .PMDPlugin ;
5049import net .sourceforge .pmd .eclipse .runtime .PMDRuntimeConstants ;
5150import net .sourceforge .pmd .eclipse .runtime .builder .MarkerUtil ;
5251import net .sourceforge .pmd .eclipse .runtime .preferences .IPreferences ;
5352import net .sourceforge .pmd .eclipse .runtime .properties .IProjectProperties ;
5453import net .sourceforge .pmd .eclipse .runtime .properties .PropertiesException ;
5554import net .sourceforge .pmd .eclipse .ui .actions .RuleSetUtil ;
55+ import net .sourceforge .pmd .eclipse .ui .actions .internal .InternalRuleSetUtil ;
5656import net .sourceforge .pmd .lang .Language ;
5757
5858/**
@@ -301,7 +301,7 @@ private void determineFileExtensions(Map<IProject, Set<String>> fileExtensionsPe
301301 IProject project = resource .getProject ();
302302 if (project != null && !fileExtensionsPerProject .containsKey (project )) {
303303 try {
304- RuleSets rulesets = rulesetsFrom (resource );
304+ List < RuleSet > rulesets = rulesetsFrom (resource );
305305 Set <String > fileExtensions = determineFileExtensions (rulesets );
306306 fileExtensionsPerProject .put (project , fileExtensions );
307307 } catch (PropertiesException e ) {
@@ -502,7 +502,7 @@ private IProjectProperties getProjectProperties(IProject project) throws Propert
502502 return propertyCache ;
503503 }
504504
505- private RuleSets rulesetsFrom (IResource resource ) throws PropertiesException {
505+ private List < RuleSet > rulesetsFrom (IResource resource ) throws PropertiesException {
506506 IProject project = resource .getProject ();
507507 IProjectProperties properties = getProjectProperties (project );
508508
@@ -521,7 +521,7 @@ private void processResource(IResource resource) {
521521 return ;
522522 }
523523
524- RuleSets ruleSets = rulesetsFrom (resource );
524+ List < RuleSet > ruleSets = rulesetsFrom (resource );
525525 Set <String > fileExtensions = determineFileExtensions (ruleSets );
526526 // final PMDEngine pmdEngine = getPmdEngineForProject(project);
527527 int targetCount = 0 ;
@@ -535,15 +535,15 @@ private void processResource(IResource resource) {
535535 if (resource .exists ()) {
536536 final ResourceVisitor visitor = new ResourceVisitor ();
537537 visitor .setMonitor (getMonitor ());
538- visitor .setRuleSets (ruleSets );
538+ visitor .setRuleSetList (ruleSets );
539539 visitor .setFileExtensions (fileExtensions );
540540 // visitor.setPmdEngine(pmdEngine);
541541 visitor .setAccumulator (markersByFile );
542542 visitor .setUseTaskMarker (taskMarker );
543543 visitor .setProjectProperties (properties );
544544 resource .accept (visitor );
545545
546- ruleCount = ruleSets . getAllRules (). size ( );
546+ ruleCount = InternalRuleSetUtil . countRules ( ruleSets );
547547 fileCount += visitor .getProcessedFilesCount ();
548548 pmdDuration += visitor .getActualPmdDuration ();
549549 } else {
@@ -563,10 +563,12 @@ private void processResource(IResource resource) {
563563 }
564564 }
565565
566- private Set <String > determineFileExtensions (RuleSets ruleSets ) {
566+ private Set <String > determineFileExtensions (List < RuleSet > ruleSets ) {
567567 Set <Language > languages = new HashSet <Language >();
568- for (Rule rule : ruleSets .getAllRules ()) {
569- languages .add (rule .getLanguage ());
568+ for (RuleSet ruleset : ruleSets ) {
569+ for (Rule rule : ruleset .getRules ()) {
570+ languages .add (rule .getLanguage ());
571+ }
570572 }
571573 Set <String > fileExtensions = new HashSet <String >();
572574 for (Language language : languages ) {
@@ -638,14 +640,14 @@ private void taskScope(int activeRuleCount, int totalRuleCount) {
638640 + " rules" );
639641 }
640642
641- private RuleSets filteredRuleSets (IProjectProperties properties ) throws PropertiesException {
642- final RuleSets projectRuleSets = properties .getProjectRuleSets ();
643+ private List < RuleSet > filteredRuleSets (IProjectProperties properties ) throws PropertiesException {
644+ final List < RuleSet > projectRuleSets = properties .getProjectRuleSetList ();
643645 IPreferences preferences = PMDPlugin .getDefault ().getPreferencesManager ().loadPreferences ();
644646 Set <String > onlyActiveRuleNames = preferences .getActiveRuleNames ();
645647
646- RuleSets filteredRuleSets = new RuleSets ();
648+ List < RuleSet > filteredRuleSets = new ArrayList <> ();
647649
648- for (RuleSet ruleSet : projectRuleSets . getAllRuleSets () ) {
650+ for (RuleSet ruleSet : projectRuleSets ) {
649651 int rulesBefore = ruleSet .size ();
650652 RuleSet filteredRuleSet = RuleSetUtil .newCopyOf (ruleSet );
651653 if (preferences .getGlobalRuleManagement ()) {
@@ -665,18 +667,20 @@ private RuleSets filteredRuleSets(IProjectProperties properties) throws Properti
665667 rulesAfter , rulesBefore , rulesBefore - rulesAfter );
666668 }
667669 }
668- filteredRuleSet = RuleSetUtil .addExcludePatterns (filteredRuleSet , preferences .activeExclusionPatterns (),
669- properties .getBuildPathExcludePatterns ());
670- filteredRuleSet = RuleSetUtil .addIncludePatterns (filteredRuleSet , preferences .activeInclusionPatterns (),
671- properties .getBuildPathIncludePatterns ());
672- filteredRuleSets .addRuleSet (filteredRuleSet );
670+ filteredRuleSet = InternalRuleSetUtil .addExcludePatterns (filteredRuleSet ,
671+ InternalRuleSetUtil .convertStringPatterns (preferences .activeExclusionPatterns ()),
672+ InternalRuleSetUtil .convertStringPatterns (properties .getBuildPathExcludePatterns ()));
673+ filteredRuleSet = InternalRuleSetUtil .addIncludePatterns (filteredRuleSet ,
674+ InternalRuleSetUtil .convertStringPatterns (preferences .activeInclusionPatterns ()),
675+ InternalRuleSetUtil .convertStringPatterns (properties .getBuildPathIncludePatterns ()));
676+ filteredRuleSets .add (filteredRuleSet );
673677 }
674678
675- taskScope (filteredRuleSets . getAllRules (). size (), projectRuleSets . getAllRules (). size ( ));
679+ taskScope (InternalRuleSetUtil . countRules ( filteredRuleSets ), InternalRuleSetUtil . countRules ( projectRuleSets ));
676680 return filteredRuleSets ;
677681 }
678682
679- private RuleSets rulesetsFromResourceDelta () throws PropertiesException {
683+ private List < RuleSet > rulesetsFromResourceDelta () throws PropertiesException {
680684
681685 IResource resource = resourceDelta .getResource ();
682686 final IProject project = resource .getProject ();
@@ -695,7 +699,7 @@ private void processResourceDelta() {
695699 final IProjectProperties properties = getProjectProperties (project );
696700 LOG .info ("ReviewCodeCmd started on resource delta {} in {}" , resource .getName (), project );
697701
698- final RuleSets ruleSets = rulesetsFromResourceDelta ();
702+ final List < RuleSet > ruleSets = rulesetsFromResourceDelta ();
699703 Set <String > fileExtensions = determineFileExtensions (ruleSets );
700704
701705 // PMDEngine pmdEngine = getPmdEngineForProject(project);
@@ -707,15 +711,15 @@ private void processResourceDelta() {
707711
708712 DeltaVisitor visitor = new DeltaVisitor ();
709713 visitor .setMonitor (getMonitor ());
710- visitor .setRuleSets (ruleSets );
714+ visitor .setRuleSetList (ruleSets );
711715 visitor .setFileExtensions (fileExtensions );
712716 // visitor.setPmdEngine(pmdEngine);
713717 visitor .setAccumulator (markersByFile );
714718 visitor .setUseTaskMarker (taskMarker );
715719 visitor .setProjectProperties (properties );
716720 resourceDelta .accept (visitor );
717721
718- ruleCount = ruleSets . getAllRules (). size ( );
722+ ruleCount = InternalRuleSetUtil . countRules ( ruleSets );
719723 fileCount += visitor .getProcessedFilesCount ();
720724 pmdDuration += visitor .getActualPmdDuration ();
721725 } else {
0 commit comments