package net.sourceforge.pmd.eclipse.ui.preferences.br; import java.util.Iterator; import java.util.Set; import net.sourceforge.pmd.RuleSet; /** * * @author Brian Remedios */ public class BasicRuleSetFieldAccessor implements RuleSetFieldAccessor { public BasicRuleSetFieldAccessor() { } public String labelFor(RuleSet ruleSet) { Comparable<?> value = valueFor(ruleSet); return value == null ? "" : value.toString(); } public Comparable<?> valueFor(RuleSet ruleSet) { throw new RuntimeException("unimplemented method"); } // public Comparable<?> valueFor(RuleSetCollection collection) { // Comparable<?> aspect = RuleUtil.commonAspect(collection, this); // if (aspect != null) return aspect; // return asString( RuleUtil.uniqueAspects(collection, this) ); // } // // public Set<Comparable<?>> uniqueValuesFor(RuleSet/Collection collection) { // return RuleUtil.uniqueAspects(collection, this); // } protected String format(Object item) { return item == null ? "" : String.valueOf(item); } protected String asString(Set<Comparable<?>> items) { Iterator<Comparable<?>> iter = items.iterator(); if (items.size() == 1) return format(iter.next()); StringBuilder sb = new StringBuilder(format(iter.next())); while (iter.hasNext()) { sb.append(", ").append(format(iter.next())); } return sb.toString(); } }