package net.sourceforge.pmd.eclipse.ui.preferences;
import java.util.List;
import net.sourceforge.pmd.RuleSet;
/**
* This class implements a content provider for the ruleset exclude/include
* pattern tables of the PMD Preference page
*
*/
public class RuleSetExcludeIncludePatternContentProvider extends AbstractStructuredContentProvider {
private final boolean exclude;
private static final RuleSetExcludeIncludePattern[] emptyRuleSetPattern = new RuleSetExcludeIncludePattern[0];
public RuleSetExcludeIncludePatternContentProvider(boolean exclude) {
this.exclude = exclude;
}
/**
* @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(Object)
*/
public RuleSetExcludeIncludePattern[] getElements(Object inputElement) {
if (inputElement instanceof RuleSet) {
RuleSet ruleSet = (RuleSet)inputElement;
List<String> patterns = exclude ? ruleSet.getExcludePatterns() : ruleSet.getIncludePatterns();
RuleSetExcludeIncludePattern[] patternList = new RuleSetExcludeIncludePattern[patterns.size()];
for (int i = 0; i < patternList.length; i++) {
patternList[i] = new RuleSetExcludeIncludePattern(ruleSet, exclude, i);
}
return patternList;
}
return emptyRuleSetPattern;
}
}