1 23 package org.hammurapi.inspectors; 24 25 import org.hammurapi.InspectorBase; 26 27 import com.pavelvlasov.config.ConfigurationException; 28 import com.pavelvlasov.config.Parameterizable; 29 import com.pavelvlasov.jsel.Interface; 30 import com.pavelvlasov.jsel.Modifiable; 31 32 33 39 public class InterfaceMethodModifiersRule 40 extends InspectorBase implements Parameterizable { 41 42 49 public void visit(Interface element) { 50 java.util.Iterator fields = element.getFields().iterator(); 51 52 while (fields.hasNext()) { 53 Modifiable item = (Modifiable) fields.next(); 54 55 if (! allowedModifiers.containsAll(item.getModifiers())) { 56 context.reportViolation(item); 57 } 58 } 59 } 60 61 65 private java.util.Set allowedModifiers = new java.util.HashSet (); 66 67 68 76 public boolean setParameter(String name, Object parameter) throws ConfigurationException { 77 if ("allowed-modifier".equals(name)) { 78 allowedModifiers.add(parameter.toString()); 79 return true; 80 } else { 81 throw new ConfigurationException("Parameter '"+name+"' is not supported"); 82 } 83 } 84 85 88 public String getConfigInfo() { 89 StringBuffer ret=new StringBuffer ("Allowed modifiers in the interface declarations:\n"); 90 java.util.Iterator iter = allowedModifiers.iterator(); 91 while (iter.hasNext()) { 92 ret.append("allowed-modifier: " + (String ) iter.next() + "\t"); 93 } 94 ret.append("\n"); 95 return ret.toString(); 96 } 97 } 98 | Popular Tags |